_fullpath
, _wfullpath
지정된 상대 경로 이름의 절대 또는 전체 경로 이름을 만듭니다.
구문
char *_fullpath(
char *absPath,
const char *relPath,
size_t maxLength
);
wchar_t *_wfullpath(
wchar_t *absPath,
const wchar_t *relPath,
size_t maxLength
);
매개 변수
absPath
절대 또는 전체 경로 이름이나 NULL
이 포함된 버퍼에 대한 포인터입니다.
relPath
상대 경로 이름입니다.
maxLength
절대 경로 이름 버퍼(absPath
)의 최대 길이입니다. 이 길이는 _fullpath
의 바이트 수로, wchar_t
의 경우에는 와이드 문자 수입니다(_wfullpath
).
반환 값
dlfjgks 각 함수는 절대 경로 이름(absPath
)이 포함된 버퍼에 대한 포인터를 반환합니다. 오류가 있는 경우(예: 전달된 값에 relPath
유효하지 않거나 찾을 수 없는 드라이브 문자가 포함되거나 생성된 절대 경로 이름(absPath
)의 길이가 보다 maxLength
크면 함수가 반환됩니다 NULL
.
설명
함수는 _fullpath
상대 경로 이름을 relPath
정규화된 경로 또는 절대 경로로 확장하고 이 이름을 저장합니다 absPath
. NULL
malloc
이 경우 absPath
경로 이름을 보유하기에 충분한 길이의 버퍼를 할당하는 데 사용됩니다. 이 버퍼를 해제하는 것은 호출자의 책임입니다. 상대 경로 이름은 현재 위치(예: .
현재 작업 디렉터리)의 다른 위치에 대한 경로를 지정합니다. 절대 경로 이름은 파일 시스템의 루트에서 원하는 위치에 도달하는 데 필요한 전체 경로를 설명하는 상태 경로 이름의 확장입니다. 달리_makepath
, _fullpath
해당 이름을 포함하거나 ../
이름을 포함하는 ./
상대 경로(relPath
)의 절대 경로 이름을 가져오는 데 사용할 수 있습니다.
예를 들어 C 런타임 루틴을 사용하려면 루틴 선언이 들어 있는 헤더 파일을 애플리케이션에 포함해야 합니다. 각 헤더 파일 #include
지시문은 애플리케이션의 작업 디렉터리에서 상대적인 방식으로 파일의 위치를 참조합니다.
#include <stdlib.h>
파일의 절대 경로(실제 파일 시스템 위치)가 다음과 같을 경우:
\\machine\shareName\msvcSrc\crt\headerFiles\stdlib.h
기본적으로 이 함수의 전역 상태는 애플리케이션으로 범위가 지정됩니다. 이 동작을 변경하려면 CRT 전역 상태를 참조하세요.
_fullpath
는 현재 사용 중인 멀티바이트 코드 페이지에 따라 멀티바이트 문자 시퀀스를 인식하며 멀티바이트 문자열 인수를 자동으로 적절히 처리합니다. _wfullpath
는 _fullpath
의 와이드 문자 버전이며, _wfullpath
에 대한 문자열 인수는 와이드 문자열입니다. _wfullpath
멀티 _fullpath
바이트 문자열을 _wfullpath
처리하지 않는다는 점을 제외하고 동일하게 동작합니다.
_CRTDBG_MAP_ALLOC
둘 다 정의된 경우 _DEBUG
메모리 할당을 디버그할 _wfullpath
_fullpath
수 있도록 호출 _fullpath_dbg
및 _wfullpath_dbg
호출로 대체됩니다. 자세한 내용은 _fullpath_dbg
, _wfullpath_dbg
을 참조하세요.
이 함수는 매개 변수 유효성 검사에서 설명한 대로 0보다 작거나 같은 경우 maxlen
잘못된 매개 변수 처리기를 호출합니다. 계속해서 실행하도록 허용한 경우 이 함수는 errno
를 EINVAL
로 설정하고 NULL
을 반환합니다.
일반 텍스트 루틴 매핑
Tchar.h 루틴 |
_UNICODE and _MBCS 정의되지 않음 |
정의된 _MBCS |
정의된 _UNICODE |
---|---|---|---|
_tfullpath |
_fullpath |
_fullpath |
_wfullpath |
버퍼인 absPath
NULL
_fullpath
경우 버퍼 할당을 호출 malloc
하고 인수를 maxLength
무시합니다. 이 버퍼를 적절하게 할당 취소(사용 free
)하는 것은 호출자의 책임입니다. relPath
인수로 디스크 드라이브를 지정하면 이 드라이브의 현재 디렉터리가 경로와 결합됩니다.
요구 사항
함수 | 필수 헤더 |
---|---|
_fullpath |
<stdlib.h> |
_wfullpath |
<stdlib.h> 또는 <wchar.h> |
호환성에 대한 자세한 내용은 호환성을 참조하세요.
예시
// crt_fullpath.c
// This program demonstrates how _fullpath
// creates a full path from a partial path.
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <direct.h>
void PrintFullPath( char * partialPath )
{
char full[_MAX_PATH];
if( _fullpath( full, partialPath, _MAX_PATH ) != NULL )
printf( "Full path is: %s\n", full );
else
printf( "Invalid path\n" );
}
int main( void )
{
PrintFullPath( "test" );
PrintFullPath( "\\test" );
PrintFullPath( "..\\test" );
}
Full path is: C:\Documents and Settings\user\My Documents\test
Full path is: C:\test
Full path is: C:\Documents and Settings\user\test
참고 항목
파일 처리
_getcwd
, _wgetcwd
_getdcwd
, _wgetdcwd
_makepath
, _wmakepath
_splitpath
, _wsplitpath