_splitpath, _wsplitpath

경로를 구성 요소로 분리합니다. 이러한 함수의 더 안전한 버전을 사용할 수 있는 경우 다음_wsplitpath_s을 참조하세요_splitpath_s.

구문

void _splitpath(
   const char *path,
   char *drive,
   char *dir,
   char *fname,
   char *ext
);
void _wsplitpath(
   const wchar_t *path,
   wchar_t *drive,
   wchar_t *dir,
   wchar_t *fname,
   wchar_t *ext
);

매개 변수

path
전체 경로입니다.

drive
드라이브 문자 뒤에 콜론(:)이 잇습니다. 드라이브 문자가 필요하지 않은 경우 이 매개 변수를 전달할 NULL 수 있습니다.

dir
후행 슬래시를 포함한 디렉터리 경로입니다. 슬래시(/), 백슬래시(\) 또는 두 슬래시를 모두 사용할 수 있습니다. 디렉터리 경로가 필요하지 않은 경우 이 매개 변수를 전달 NULL 합니다.

fname
기본 파일 이름(확장명 없음)입니다. 파일 이름이 필요하지 않은 경우 이 매개 변수를 전달 NULL 합니다.

ext
선행 마침표(.)를 포함한 파일 이름 확장명입니다. 파일 이름 확장 프로그램이 필요하지 않은 경우 이 매개 변수를 전달 NULL 합니다.

설명

_splitpath 함수는 경로를 4개 구성 요소로 분해합니다. _splitpath 는 현재 사용 중인 멀티바이트 코드 페이지에 따라 멀티바이트 문자 시퀀스를 인식하며 멀티바이트 문자열 인수를 자동으로 적절히 처리합니다. _wsplitpath_splitpath의 와이드 문자 버전이며, _wsplitpath 에 대한 인수는 와이드 문자 문자열입니다. 그 외의 경우에는 이들 함수가 동일하게 작동합니다.

보안 참고 이러한 함수는 버퍼 오버런의 영향을 받습니다. 버퍼 오버런 문제는 자주 사용되는 시스템 공격 방법으로, 불필요한 권한 상승을 초래합니다. 자세한 내용은 버퍼 오버런 방지를 참조 하세요. 이러한 함수의 더 안전한 버전을 사용할 수 있습니다. 를 참조하세요_splitpath_s. _wsplitpath_s

기본적으로 이 함수의 전역 상태는 애플리케이션으로 범위가 지정됩니다. 이 동작을 변경하려면 CRT의 전역 상태를 참조하세요.

일반 텍스트 루틴 매핑

TCHAR.H 루틴 _UNICODE 정의 _MBCS 되지 않음 _MBCS 정의 _UNICODE 정의
_tsplitpath _splitpath _splitpath _wsplitpath

전체 경로의 각 구성 요소는 별도의 버퍼에 저장됩니다. 매니페스트 상수 _MAX_DRIVE, _MAX_DIR_MAX_FNAME_MAX_EXT (정의됨STDLIB.H)는 각 파일 구성 요소의 최대 크기를 지정합니다. 해당 매니페스트 상수보다 큰 파일 구성 요소가 있으면 힙이 손상됩니다.

버퍼 오버런 가능성을 방지하려면 각 버퍼가 해당하는 매니페스트 상수만큼 커야 합니다.

다음 표에는 매니페스트 상수의 값이 나와 있습니다.

속성
_MAX_DRIVE 3
_MAX_DIR 256
_MAX_FNAME 256
_MAX_EXT 256

전체 경로에 구성 요소(예: 파일 이름) _splitpath 가 없는 경우 해당 버퍼에 빈 문자열을 할당합니다.

필요하지 않은 매개 변수 이외의 path 매개 변수에 전달할 NULL_splitpath 수 있습니다.

이 경우 path 매개 변수 유효성 검사에 설명된 대로 잘못된 매개 변수 처리기가 호출NULL됩니다. 계속해서 실행하도록 허용된 경우 errnoEINVAL로 설정됩니다.

요구 사항

루틴에서 반환된 값 필수 헤더
_splitpath <stdlib.h>
_wsplitpath <stdlib.h> 또는 <wchar.h>

호환성에 대한 자세한 내용은 호환성을 참조하세요.

예시

에 대한 예제를 _makepath참조하세요.

참고 항목

파일 처리
_fullpath, _wfullpath
_getmbcp
_makepath, _wmakepath
_setmbcp
_splitpath_s, _wsplitpath_s