_makepath 関数は、1 つのパスを作成し、path に格納します。パスには、ドライブ名、ディレクトリのパス、ファイル名、およびファイル名の拡張子が含まれます。ワイド文字を扱う場合は、_makepath ではなく _wmakepath を使用します。この場合、_wmakepath の引数にはワイド文字列を指定します。引数の指定以外では、_wmakepath と _makepath の動作は同じです。
セキュリティに関するメモ : |
|---|
| null で終わる文字列を使用します。null で終わる文字列のサイズが、対象のバッファのサイズを超えないようにしてください。詳細については、「Avoiding Buffer Overruns」を参照してください。 |
汎用テキスト ルーチンのマップ
|
Tchar.h のルーチン
|
_UNICODE および _MBCS が未定義の場合
|
_MBCS が定義されている場合
|
_UNICODE が定義されている場合
|
| _tmakepath | _makepath | _makepath | _wmakepath |
パスの要素を含むバッファを指す引数は次のとおりです。
- drive
-
目的のドライブに対応する文字 (A、B など) を指定します。後続のコロンは省略できます。コロンを省略した場合、_makepath によって、コロンが自動的にパス名に挿入されます。drive が null 文字または空の文字列の場合、作成される path 文字列にドライブ名とコロンは含まれません。
- dir
-
ドライブ指定子と実際のファイル名を除いて、ディレクトリのパスを指定します。後続のスラッシュまたは円記号は省略できます。1 つの dir 引数には、スラッシュ (/) か円記号 (\)、またはその両方を使用することもできます。後続のスラッシュ (/) または円記号 (\) は、指定しなくても自動的に挿入されます。dir が null 文字または空の文字列の場合、作成される path 文字列にスラッシュや円記号は挿入されません。
- fname
-
拡張子の付いていない基本のファイル名を指定します。fname が NULL の場合、または空の文字列を指す場合、作成される path 文字列にファイル名は挿入されません。
- ext
-
実際のファイル名の拡張子を指定します。先頭のピリオド (.) は省略できます。ext にピリオドがない場合、_makepath によって自動的にピリオドが挿入されます。ext が null 文字または空の文字列の場合、作成される path 文字列にピリオドは挿入されません。
path 引数は、絶対パスを保持するのに十分な大きさの空きバッファを指す必要があります。path を構成するフィールドにサイズ制限はありませんが、作成される path の長さは、Stdlib.h に定義されている _MAX_PATH 定数以下にする必要があります。_MAX_PATH 定数は、現在のオペレーティング システムで処理できる長さを超えることがあります。
Visual C++ 2005 では、これらの関数が path パラメータを検証します。パスが NULL の場合は、「パラメータの検証」に説明されているように、無効なパラメータ ハンドラが呼び出されます。さらに、errno は EINVAL に設定されます。NULL 値は他のパラメータにも使用できます。