Share via


_splitpath、_wsplitpath

更新 : 2007 年 11 月

パス名を構成要素に分解します。これらの関数のセキュリティを強化したバージョンについては、「_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
    ドライブを表す文字 (省略可能)。後ろにコロン (:) を付けます。

  • dir
    ディレクトリ パスと末尾のスラッシュ (省略可能)。区切り記号にはスラッシュ (/) および円記号 (\) を使用でき、両方を混在させることもできます。

  • fname
    ベース ファイル名 (拡張子なし)。

  • ext
    ファイル名の拡張子 (省略可能)。先頭にピリオド (.) が付きます。

解説

_splitpath 関数は、パスを 4 つのコンポーネントに分割します。_splitpath は、現在使用しているマルチバイト コード ページに基づいて自動的にマルチバイト文字列の引数を適宜処理して、マルチバイト文字シーケンスを認識します。_wsplitpath は _splitpath のワイド文字バージョンです。_wsplitpath の引数はワイド文字列です。それ以外では、これらの関数の動作は同じです。

セキュリティに関するメモ    これらの関数は、バッファ オーバーランが原因で発生する可能性のある問題の影響を受けます。バッファ オーバーランは、システムを攻撃するときによく使用される方法であり、その結果、認められていない権限が昇格されます。詳細については、「Avoiding Buffer Overruns」を参照してください。これらの関数のセキュリティを強化したバージョンがあります。「_splitpath_s、_wsplitpath_s」を参照してください。

汎用テキスト ルーチンのマップ

TCHAR.H のルーチン

_UNICODE および _MBCS が未定義の場合

_MBCS が定義されている場合

_UNICODE が定義されている場合

_tsplitpath

_splitpath

_splitpath

_wsplitpath

各引数はバッファに格納されます。各バッファに必要な最大長は、STDLIB.H で定義されている記号定数 (manifest 定数) の _MAX_DRIVE、_MAX_DIR、_MAX_FNAME、および _MAX_EXT で指定します。その他の引数は、パスの要素を格納するバッファを指します。_splitpath の実行が完了すると、path に存在しない構成要素については、これらの引数に空の文字列が入ります。不要な構成要素については、_splitpath に NULL ポインタを渡すことができます。

path が NULL の場合は、「パラメータの検証」に説明されているように、無効なパラメータ ハンドラが呼び出されます。実行の継続が許可された場合、errno が EINVAL に設定され、関数から EINVAL が返されます。

必要条件

ルーチン

必須ヘッダー

_splitpath

<stdlib.h>

_wsplitpath

<stdlib.h> または <wchar.h>

互換性の詳細については、「C ランタイム ライブラリ」の「互換性」を参照してください。

使用例

_makepath」の例を参照してください。

.NET Framework の相当するアイテム

適用できません。標準 C 関数を呼び出すには、PInvoke を使用します。詳細については、「プラットフォーム呼び出しの例」を参照してください。

参照

参照

ファイル処理

_fullpath、_wfullpath

_getmbcp

_makepath、_wmakepath

_setmbcp