_makepath、_wmakepath_makepath, _wmakepath

コンポーネントからパス名を作成します。Create a path name from components. これらの関数のセキュリティを強化したバージョンについては、「_makepath_s、_wmakepath_s (_makepath_s、_wmakepath_s)」をご覧ください。More secure versions of these functions are available; see _makepath_s, _wmakepath_s.

構文Syntax

void _makepath(
   char *path,
   const char *drive,
   const char *dir,
   const char *fname,
   const char *ext
);
void _wmakepath(
   wchar_t *path,
   const wchar_t *drive,
   const wchar_t *dir,
   const wchar_t *fname,
   const wchar_t *ext
);

パラメーターParameters

pathpath
完全なパスのバッファー。Full path buffer.

ドライブdrive
必要なドライブに対応する文字 (A、B など) と、省略可能である後続のコロンを含んでいます。Contains a letter (A, B, and so on) corresponding to the desired drive and an optional trailing colon. _makepathが存在しない場合、複合パスのコロンを自動的に挿入します。_makepath inserts the colon automatically in the composite path if it is missing. 場合ドライブNULLまたは空の文字列へのポインター、ドライブ文字は表示されません、合成パス文字列。If drive is NULL or points to an empty string, no drive letter appears in the composite path string.

dirdir
ドライブ指定子も実際のファイル名も含まない、ディレクトリのパスを含んでいます。Contains the path of directories, not including the drive designator or the actual file name. 末尾のスラッシュは省略可能なとフォワード スラッシュ (/) または円記号 (\) 1 つの両方を使用する場合がありますまたはdir引数。The trailing slash is optional, and either a forward slash (/) or a backslash (\) or both might be used in a single dir argument. 末尾のスラッシュ (/ と \ のいずれも) を指定していない場合は、スラッシュが自動的に挿入されます。If no trailing slash (/ or \) is specified, it is inserted automatically. 場合dirNULLまたは空の文字列でないディレクトリ パスへのポインターは、合成挿入パス文字列。If dir is NULL or points to an empty string, no directory path is inserted in the composite path string.

fnamefname
ファイル名拡張子がないベース ファイル名が含まれています。Contains the base file name without any file name extensions. 場合fnameNULLまたは空の文字列でないファイル名へのポインターは、合成挿入パス文字列。If fname is NULL or points to an empty string, no filename is inserted in the composite path string.

extext
先行するピリオド (.) の有無を問わず、実際のファイル名拡張子が含まれています。Contains the actual file name extension, with or without a leading period (.). _makepathが表示されない場合、期間を自動的に挿入extします。場合extNULLまたは拡張子のない空の文字列の指すは、合成挿入パス文字列。_makepath inserts the period automatically if it does not appear in ext. If ext is NULL or points to an empty string, no extension is inserted in the composite path string.

RemarksRemarks

_Makepath関数の結果を格納する個別のコンポーネントから合成パス文字列を作成するパスします。The _makepath function creates a composite path string from individual components, storing the result in path. パスドライブ文字、ディレクトリのパス、ファイル名、およびファイル名拡張子を含めることができます。The path might include a drive letter, directory path, filename, and filename extension. _wmakepathのワイド文字バージョンは、 _makepath; 引数 _wmakepathはワイド文字列です。_wmakepath is a wide-character version of _makepath; the arguments to _wmakepath are wide-character strings. _wmakepath_makepath動作は同じです。_wmakepath and _makepath behave identically otherwise.

セキュリティに関するメモ null で終わる文字列をご使用ください。Security Note Use a null-terminated string. バッファー オーバーランを防ぐためには、null で終わる文字列を超えないのサイズ、パスバッファー。To avoid buffer overrun, the null-terminated string must not exceed the size of the path buffer. _makepath合成パス文字列の長さを超えていないことを確認していない _MAX_PATHします。_makepath does not ensure that the length of the composite path string does not exceed _MAX_PATH. 詳しくは、「 バッファー オーバーランの回避」をご覧ください。For more information, see Avoiding Buffer Overruns.

汎用テキスト ルーチンのマップGeneric-Text Routine Mappings

Tchar.h のルーチンTchar.h routine _UNICODE および _MBCS が未定義の場合_UNICODE and _MBCS not defined _MBCS が定義されている場合_MBCS defined _UNICODE が定義されている場合_UNICODE defined
_tmakepath_tmakepath _makepath_makepath _makepath_makepath _wmakepath_wmakepath

パス引数は、空の完全なパスを保持するために十分な大きさのバッファーを指す必要があります。The path argument must point to an empty buffer large enough to hold the complete path. 複合パスを超える必要があります、 _MAX_PATH Stdlib.h で定義されている定数。The composite path must be no larger than the _MAX_PATH constant, defined in Stdlib.h.

パスがある場合NULLで説明されているとおり、無効なパラメーター ハンドラーが呼び出されますパラメーターの検証です。If path is NULL, the invalid parameter handler is invoked, as described in Parameter Validation. さらに、 errnoに設定されているEINVALします。In addition, errno is set to EINVAL. NULL他のすべてのパラメーター値を使用できます。NULL values are allowed for all other parameters.

必要条件Requirements

ルーチンによって返される値Routine 必須ヘッダーRequired header
_makepath_makepath <stdlib.h><stdlib.h>
_wmakepath_wmakepath <stdlib.h> または <wchar.h><stdlib.h> or <wchar.h>

互換性の詳細については、「 互換性」を参照してください。For more compatibility information, see Compatibility.

Example

// crt_makepath.c
#include <stdlib.h>
#include <stdio.h>

int main( void )
{
   char path_buffer[_MAX_PATH];
   char drive[_MAX_DRIVE];
   char dir[_MAX_DIR];
   char fname[_MAX_FNAME];
   char ext[_MAX_EXT];

   _makepath( path_buffer, "c", "\\sample\\crt\\", "makepath", "c" ); // C4996
   // Note: _makepath is deprecated; consider using _makepath_s instead
   printf( "Path created with _makepath: %s\n\n", path_buffer );
   _splitpath( path_buffer, drive, dir, fname, ext ); // C4996
   // Note: _splitpath is deprecated; consider using _splitpath_s instead
   printf( "Path extracted with _splitpath:\n" );
   printf( "   Drive: %s\n", drive );
   printf( "   Dir: %s\n", dir );
   printf( "   Filename: %s\n", fname );
   printf( "   Ext: %s\n", ext );
}
Path created with _makepath: c:\sample\crt\makepath.c

Path extracted with _splitpath:
   Drive: c:
   Dir: \sample\crt\
   Filename: makepath
   Ext: .c

関連項目See also

ファイル処理File Handling
_fullpath、_wfullpath_fullpath, _wfullpath
_splitpath、_wsplitpath_splitpath, _wsplitpath
_makepath_s、_wmakepath_s_makepath_s, _wmakepath_s