다음을 통해 공유


_makepath, _wmakepath

구성 요소에서 경로 이름을 생성합니다. 이러한 기능의 더 안전한 버전을 사용할 수 있습니다. _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 는 동일하게 작동합니다.

Security Note는 null로 끝나는 문자열을 사용 합니다. 버퍼 오버런을 피하기 위해 null로 끝나는 문자열은 path 버퍼의 크기를 초과 하지 않아야만 합니다. _makepath는 복합 경로 문자열의 길이가 _MAX_PATH를 넘지 않도록 보장하지 않습니다. 자세한 내용은 버퍼 오버런 방지를 참조하십시오.

제네릭 텍스트 라우팅 매핑

Tchar.h 루틴

_UNICODE 및 _MBCS 정의되지 않음

_MBCS 정의됨

_UNICODE 정의됨

_tmakepath

_makepath

_makepath

_wmakepath

path 인수는 반드시 전체 경로를 포함하기에 충분히 큰 빈 버퍼를 가리켜야 합니다. 복합 path는 반드시 Stdlib.h에 정의된 _MAX_PATH 상수보다 더 크지 않아야 합니다.

경로가 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 );
}
  

해당 .NET Framework 항목

System::IO::File::Create

참고 항목

참조

파일 처리

_fullpath, _wfullpath

_splitpath, _wsplitpath

_makepath_s, _wmakepath_s