_makepath, _wmakepath
경로 이름에서 구성 요소를 만듭니다.이러한 함수를 더 안전한 버전을 사용할 수 있습니다. see _makepath_s, _wmakepath_s.
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
);
매개 변수
path
전체 경로 버퍼입니다.drive
문자 (A, B, 등)을 포함 원하는 드라이브에서 선택적 후행 콜론에 해당 합니다._makepath존재 하는 경우 콜론에서 합성 패스를 자동으로 삽입 됩니다.경우 drive 입니다 NULL 또는 합성 된 요소는 빈 문자열을 드라이브 문자 없음 나타납니다 path 문자열입니다.dir
드라이브 지정자 나 실제 파일 이름을 포함 하지 않는 디렉터리의 경로 포함 합니다.후행 슬래시가 며에서 단일 슬래시 (/) 또는 백슬래시 (\) 또는 두 가지 모두 사용할 수 있습니다 dir 인수입니다.경우 끝에 슬래시 (/ 또는 \) 지정 하면 자동으로 삽입 됩니다.경우 dir 입니다 NULL 또는 합성 된 삽입 지점을 디렉터리 경로가 빈 문자열을 path 문자열입니다.fname
파일 이름 확장명이 없는 기본 파일 이름이 포함 되어 있습니다.경우 fname 입니다 NULL 또는 합성 된 삽입 지점을 빈 문자열, 파일 이름 path 문자열입니다.ext
실제 파일 이름 확장명을 사용 하거나 앞에 마침표 (.) 없이 포함 되어 있습니다._makepath기간에 표시 되지 않는 경우에 자동으로 삽입 ext.경우 ext 입니다 NULL 또는 합성 된 삽입 지점을 확장명이 없는 빈 문자열을 path 문자열입니다.
설명
_makepath 함수에 결과 저장 하는 개별 구성 요소에서 합성 경로 문자열을 만듭니다 path.path 드라이브 문자, 디렉터리 경로, 파일 이름 및 파일 이름 확장명 포함 될 수 있습니다._wmakepath와이드 문자 버전입니다 _makepath. 한 인수 _wmakepath 와이드 문자 문자열입니다._wmakepath및 _makepath 그렇지을 동일 하 게 작동 합니다.
보안 참고 는 null로 끝나는 문자열을 사용 합니다.버퍼 오버런이 발생 하지 않도록 하려면 null로 끝나는 문자열 크기를 초과할 수 없습니다의 path 버퍼입니다._makepath복합 경로 문자열의 길이 초과 하지 않는 보장 하지 않습니다 _MAX_PATH.자세한 내용은 버퍼 오버런 방지.
일반 텍스트 루틴 매핑
Tchar.h 루틴 |
_UNICODE 및 _mbcs가 정의 되지 않았습니다. |
_Mbcs가 정의 |
_Unicode가 정의 |
---|---|---|---|
_tmakepath |
_makepath |
_makepath |
_wmakepath |
path 인수는 전체 경로 저장할 수 있을 만큼 빈 버퍼에 가리켜야 합니다.합성 path 보다 작거나 같아야는 _MAX_PATH 상수 stdlib.h에 정의 됩니다.
경로인 경우 NULL, 설명에 따라 잘못 된 매개 변수 처리기가 호출 매개 변수 유효성 검사.또한, errno 로 설정 된 EINVAL.NULL에 대 한 모든 매개 변수 값이 허용 됩니다.
요구 사항
루틴 |
필수 헤더 |
---|---|
_makepath |
<stdlib.h> |
_wmakepath |
<stdlib.h> 또는 <wchar.h> |
더 많은 호환성 정보를 참조 하십시오. 호환성 소개에서 합니다.
예제
// 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 );
}