_splitpath_s, _wsplitpath_s

경로 이름은 여러 구성 요소로 나눕니다.이러한 버전의 있습니다 _splitpath, _wsplitpath 와 보안 기능 향상에 설명 된 대로 CRT의 보안 기능.

errno_t _splitpath_s(
   const char * path,
   char * drive,
   size_t driveNumberOfElements,
   char * dir,
   size_t dirNumberOfElements,
   char * fname,
   size_t nameNumberOfElements,
   char * ext, 
   size_t extNumberOfElements
);
errno_t _wsplitpath_s(
   const wchar_t * path,
   wchar_t * drive,
   size_t driveNumberOfElements,
   wchar_t *dir,
   size_t dirNumberOfElements,
   wchar_t * fname,
   size_t nameNumberOfElements,
   wchar_t * ext,
   size_t extNumberOfElements
);
template <size_t drivesize, size_t dirsize, size_t fnamesize, size_t extsize>
errno_t _splitpath_s(
   const char *path,
   char (&drive)[drivesize],
   char (&dir)[dirsize],
   char (&fname)[fnamesize],
   char (&ext)[extsize]
); // C++ only
template <size_t drivesize, size_t dirsize, size_t fnamesize, size_t extsize>
errno_t _wsplitpath_s(
   const wchar_t *path,
   wchar_t (&drive)[drivesize],
   wchar_t (&dir)[dirsize],
   wchar_t (&fname)[fnamesize],
   wchar_t (&ext)[extsize]
); // C++ only

매개 변수

  • [in] path
    전체 경로입니다.

  • [out] drive
    드라이브 문자, 콜론 (:).전달 하 여 NULL 드라이브 문자는 필요 하지 않은 경우이 매개 변수에 대 한.

  • [in] driveNumberOfElements
    크기는 drive 에서 1 바이트 또는 와이드 문자 버퍼입니다.경우 drive 입니다 NULL,이 값은 0 이어야 합니다.

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

  • [in] dirNumberOfElements
    크기는 dir 에서 1 바이트 또는 와이드 문자 버퍼입니다.경우 dir 입니다 NULL,이 값은 0 이어야 합니다.

  • [out] fname
    기본 파일 이름 확장명 없이입니다.전달 하 여 NULL 파일 이름이 필요 하지 않은 경우이 매개 변수에 대 한.

  • [in] nameNumberOfElements
    크기는 fname 에서 1 바이트 또는 와이드 문자 버퍼입니다.경우 fname 입니다 NULL,이 값은 0 이어야 합니다.

  • [out] ext
    파일 이름 확장명 앞에 기간을 포함 하 여, (.).전달 하 여 NULL 파일 이름 확장명 필요 하지 않은 경우이 매개 변수에 대 한.

  • [in] extNumberOfElements
    크기를 ext 에서 1 바이트 또는 와이드 문자 버퍼입니다.경우 ext 입니다 NULL,이 값은 0 이어야 합니다.

반환 값

성공 하는 경우에 0입니다. 실패 시 오류 코드입니다.

오류 조건

조건

반환 값

path입니다 NULL

EINVAL

driveis NULL, driveNumberOfElements is non-zero

EINVAL

driveis non-NULL, driveNumberOfElements is zero

EINVAL

diris NULL, dirNumberOfElements is non-zero

EINVAL

diris non-NULL, dirNumberOfElements is zero

EINVAL

fnameis NULL, nameNumberOfElements is non-zero

EINVAL

fnameis non-NULL, nameNumberOfElements is zero

EINVAL

extis NULL, extNumberOfElements is non-zero

EINVAL

extis non-NULL, extNumberOfElements is zero

EINVAL

위의 조건 중 하나라도 발생 하는 경우 잘못 된 매개 변수 처리기를의 설명에 따라 호출 됩니다 매개 변수 유효성 검사 .실행을 계속 수 있으면 이러한 함수를 설정 errno 에 EINVAL 를 반환 하 고 EINVAL.

너무 짧은 결과 저장할 버퍼가 있을 경우 이러한 함수 빈 문자열 설정 합니다 모든 버퍼 해제 errno 에 ERANGE, 반환 하 고 ERANGE.

설명

_splitpath_s 함수를 네 가지 구성 요소로 경로 중단 합니다._splitpath_s 자동으로 현재 사용 중인 멀티 바이트 코드 페이지에 따라 멀티 바이트 문자 시퀀스를 인식 합니다. 멀티 바이트 문자 문자열 인수를 적절 하 게 처리 합니다._wsplitpath_s 와이드 문자 버전입니다 _splitpath_s. 한 인수 _wsplitpath_s와이드 문자 문자열입니다.그렇지 않으면 이러한 함수를 동일 하 게 작동

일반 텍스트 루틴 매핑

TCHAR입니다.H 루틴

_UNICODE 및 _Mbcs가 정의 되지 않았습니다.

_Mbcs가 정의

_Unicode가 정의

_tsplitpath_s

_splitpath_s

_splitpath_s

_wsplitpath_s

각 구성 요소의 전체 경로 다른 버퍼에 저장 됩니다. 매니페스트 상수 _MAX_DRIVE, _MAX_DIR, _MAX_FNAME, 및 _MAX_EXT (STDLIB에 정의 됩니다.H) 각 파일 구성 요소에 대 한 최대 허용 크기를 지정 합니다.구성 요소 매니페스트 상수는 해당 힙 손상으로 인해 발생할 것 보다 더 큰 파일입니다.

다음 표는 매니페스트 상수 값입니다.

Name

_MAX_DRIVE

3

_MAX_DIR

256

_MAX_FNAME

256

_MAX_EXT

256

구성 요소 (예: filename)에서 전체 경로 포함 하지 않는 경우 _splitpath_s 는 빈 문자열을 해당 버퍼에 할당 합니다.

C + +에서이 함수를 사용 하 여 템플릿 오버 로드에 단순화 됩니다. 오버 버퍼 길이 size 인수를 지정 하지 않아도 자동으로 유추할 수 있습니다.자세한 내용은 보안 템플릿 오버 로드를 참조하십시오.

이 함수들은 먼저 버퍼 0xFD 입력합니다.이 동작을 해제 하려면 사용 _CrtSetDebugFillThreshold.

요구 사항

루틴

필수 헤더

_splitpath_s

<stdlib.h>

_wsplitpath_s

<stdlib.h> 또는 <wchar.h>

추가 호환성 정보를 참조 하십시오. 호환성 소개에서 합니다.

예제

예제를 보려면 _makepath_s, _wmakepath_s.

해당 .NET Framework 항목

해당 사항 없음. 표준 C 함수를 호출할 수 있습니다 PInvoke. 자세한 내용은 플랫폼 호출 예제.

참고 항목

참조

파일 처리

_splitpath, _wsplitpath

_fullpath, _wfullpath

_getmbcp

_makepath, _wmakepath

_setmbcp