_makepath, _wmakepath

提供: RAD Studio
移動先: 案内検索

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

+