VS2005以降でないと使用できません。
stdlib.hをインクルードする必要があります。
errno_t _makepath_s( char *path, size_t sizeInCharacters, const char *drive, const char *dir, const char *fname, const char *ext );pathは、完全パス名を格納するバッファです。
では、簡単なサンプルを見てみましょう。
/* makepath01.c */ #include <stdio.h> #include <stdlib.h> #include <string.h> int main() { char path[_MAX_PATH], drv[_MAX_DRIVE], dir[_MAX_DIR], filename[_MAX_FNAME], ext[_MAX_DRIVE]; strcpy_s(drv, _MAX_DRIVE, "d"); strcpy_s(dir, _MAX_DIR, "\\abc\\def\\"); strcpy_s(filename, _MAX_FNAME, "makepath"); strcpy_s(ext, _MAX_EXT, "c"); _makepath_s(path, _MAX_PATH, drv, dir, filename, ext); printf("fullpath : %s\n", path); return 0; }strcpy_s関数を使っているので、string.hをインクルードする必要があります。
ディレクトリパスを指定するときC言語では「\」は「\\」となる点に注意してください。
_MAX_PATHなどの定数はstdlib.hで次のように定義されています。
#define _MAX_PATH 260 /* max. length of full pathname */ #define _MAX_DRIVE 3 /* max. length of drive component */ #define _MAX_DIR 256 /* max. length of path component */ #define _MAX_FNAME 256 /* max. length of file name component */ #define _MAX_EXT 256 /* max. length of extension component */では、実行結果を見てみましょう。
今回も簡単でしたね。
Update Sep/06/2007 By Y.Kumei