共用方式為


_splitpath _wsplitpath

分割成元件的路徑名稱。 這些函式更安全版本可用,請參閱_splitpath_s _wsplitpath_s

void _splitpath(
   const char *path,
   char *drive,
   char *dir,
   char *fname,
   char *ext 
);
void _wsplitpath(
   const wchar_t *path,
   wchar_t *drive,
   wchar_t *dir,
   wchar_t *fname,
   wchar_t *ext 
);

參數

  • path
    完整路徑。

  • drive
    磁碟機代號,後面接冒號 (:)。 您可以傳遞NULL這個參數,如果您不需要的磁碟機代號。

  • dir
    目錄路徑,包括結尾的斜線。 正斜線 ( / ),反斜線 ( \ ),或兩者皆可使用。 您可以傳遞NULL這個參數,如果您不需要的目錄路徑。

  • fname
    基底檔名 (沒有副檔名)。 您可以傳遞NULL這個參數,如果您不需要的檔案名稱。

  • ext
    檔名的副檔名,包括前置時間 (.)。 您可以傳遞NULL這個參數,如果您不需要檔名的副檔名。

備註

_splitpath函式會分成四個元件中的路徑。 _splitpath會自動處理多位元組字元字串引數視需要辨識多位元組字元順序,根據目前使用中的多位元組字碼頁。 _wsplitpath寬字元版本的**_splitpath**。 引數去**_wsplitpath**是寬字元字串。 這些函式具有相同其他方式作業。

安全性附註這些函式會造成潛在的威脅是緩衝區滿溢的問題。 緩衝區滿溢問題都是常見的方法,系統的攻擊,因而導致未經授權提升權限。 如需詳細資訊,請參閱避免緩衝區滿溢,。 這些函式更安全版本都可使用; 請參閱 _splitpath_s、 _wsplitpath_s

泛用文字常式對應

TCHAR。H 常式

_UNICODE & 未定義的 _MBCS

定義的 _MBCS

定義 _unicode 之後

_tsplitpath

_splitpath

_splitpath

_wsplitpath

每個元件的完整路徑會儲存在不同的緩衝。 資訊清單常數_MAX_DRIVE, _MAX_DIR, _MAX_FNAME,以及_MAX_EXT (STDLIB 中所定義。H) 中指定的每個檔案元件的大小上限。 檔案的元件,大於相對應的資訊清單常數會造成堆積損毀。

每個緩衝區必須相等於其對應的資訊清單常數,以避免潛在的緩衝區滿溢。

下表列出了資訊清單常數的值。

名稱

_MAX_DRIVE

3

_MAX_DIR

256

_MAX_FNAME

256

_MAX_EXT

256

如果完整的路徑不包含元件 (例如,檔名), _splitpath評定空字串,以對應的緩衝區。

您可以傳遞NULL到**_splitpath**以外的任何參數的path ,您不需要。

如果path是NULL,不正確的參數處理常式會叫用,如所述參數驗證。 如果要繼續,請允許執行errno設定為 [ EINVAL ,則函數會傳回EINVAL。

需求

常式

所需的標頭

_splitpath

<stdlib.h>

_wsplitpath

<stdlib.h> 或者 <wchar.h>

其他的相容性資訊,請參閱相容性在簡介中。

範例

請參閱範例的 _makepath

.NET Framework 對等用法

不適用。 若要呼叫標準的 c 函式,使用PInvoke。 如需詳細資訊,請參閱平台叫用範例

請參閱

參考

檔案處理

_fullpath _wfullpath

_getmbcp

_makepath _wmakepath

_setmbcp

_splitpath_s _wsplitpath_s