_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 が返されます。