_makepath, _wmakepath
stdlib.h:インデックス への移動
ヘッダーファイル
stdlib.h
カテゴリ
ディレクトリ制御ルーチン
プロトタイプ
void _makepath(char *path, const char *drive, const char *dir, const char *name, const char *ext);
void _wmakepath(wchar_t *path, const wchar_t *drive, const wchar_t *dir, const wchar_t *name, const wchar_t *ext);
説明
構成要素からパスを作成します。
_makepath は,パスの構成要素からパス名を作成します。新しいパス名は次のようになります。
X:\DIR\SUBDIR\NAME.EXT
ここで
drive |
= |
X: |
dir |
= |
\DIR\SUBDIR\ |
name |
= |
NAME |
ext |
= |
.EXT |
drive が空または NULL の場合,パス名にドライブは挿入されません。後ろにコロン(:)がない場合は,パス名にコロンが挿入されます。 | ||
dir が空または NULL の場合,パス名にディレクトリは挿入されません。後ろにバックスラッシュ(\ または /)がない場合は,パス名に円記号が挿入されます。 | ||
name が空または NULL の場合,パス名にファイル名は挿入されません。 | ||
ext が空または NULL の場合,パス名に拡張子は挿入されません。前にピリオド(.)がない場合は,パス名にピリオドが挿入されます。 | ||
_makepath は,作成されるパス名に対して十分な容量が path にあると仮定します。作成されるパスの最大長は _MAX_PATH です。_MAX_PATH は,stdlib.h で定義されています。 | ||
_makepath と _splitpath の機能は反対です。パスを _splitpath で分割した場合は,分割された構成要素を _makepath でマージすると,パスが作成されます。 |
drive が空または NULL の場合,パス名にドライブは挿入されません。後ろにコロン(:)がない場合は,パス名にコロンが挿入されます。
dir が空または NULL の場合,パス名にディレクトリは挿入されません。後ろにバックスラッシュ(\ または /)がない場合は,パス名に円記号が挿入されます。
name が空または NULL の場合,パス名にファイル名は挿入されません。
ext が空または NULL の場合,パス名に拡張子は挿入されません。前にピリオド(.)がない場合は,パス名にピリオドが挿入されます。
_makepath は,作成されるパス名に対して十分な容量が path にあると仮定します。作成されるパスの最大長は _MAX_PATH です。_MAX_PATH は,stdlib.h で定義されています。
_makepath と _splitpath の機能は反対です。パスを _splitpath で分割した場合は,分割された構成要素を _makepath でマージすると,パスが作成されます。
戻り値
例
#include <dir.h>
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
char s[_MAX_PATH];
char drive[_MAX_DRIVE];
char dir[_MAX_DIR];
char file[_MAX_FNAME];
char ext[_MAX_EXT];
getcwd(s,_MAX_PATH); /* 現在の作業ディレクトリを取得します */
if (s[strlen(s)-1] != '\\')
strcat(s,"\\"); /* 末尾の \ 文字を追加します */
_splitpath(s,drive,dir,file,ext); /* 文字列を個別の要素に
分解します */
strcpy(file,"DATA");
strcpy(ext,".TXT");
_makepath(s,drive,dir,file,ext); /* 要素を 1 つの文字列にマージします */
puts(s); /* 結果の文字列を表示する */
return 0;
}
移植性
POSIX | Win32 | ANSI C | ANSI C++ | |
---|---|---|---|---|
_makepath |
+ |
|||
_wmakepath |
+ |