_getcwd, _wgetcwd
현재 작업 디렉터리를 가져옵니다.
중요
이 API는 Windows 런타임에서 실행되는 응용 프로그램에서 사용할 수 없습니다.자세한 내용은 /ZW에서 지원하지 않는 CRT 함수를 참조하십시오.
char *_getcwd(
char *buffer,
int maxlen
);
wchar_t *_wgetcwd(
wchar_t *buffer,
int maxlen
);
매개 변수
buffer
경로에 대한 저장소 위치입니다.maxlen
문자가 경로의 최대 길이: _getcwd 에 대한 char 및 _wgetcwd에 대한 wchar_t .
반환 값
buffer에 대한 포인터를 반환합니다. NULL 이 오류를 나타내는 값을 반환하고, errno 는 maxlen 바이트를 할당하거나( NULL 인수는 buffer로 주어질 때) ERANGE 에 부족한 메모리를 나타내고, maxlen 문자보다 긴 경로를 가리키는 ENOMEM 를 설정합니다. maxlen 이 0보다 작거나 같으면, 이 함수는 다음 매개 변수 유효성 검사에 설명된 대로 잘못된 매개 변수 처리기를 호출합니다.
이러한 반환 코드 및 기타 반환 코드에 대한 자세한 내용은 _doserrno, errno, _sys_errlist 및 _sys_nerr을 참조하십시오.
설명
_getcwd 함수는 기본 드라이브의 현재 작업 디렉터리의 전체 경로 가져오고, buffer에 저장합니다. 정수 인수 maxlen 는 경로의 최대 길이를 지정합니다. (종료 null 문자 포함)경로의 길이가 maxlen을 초과하면 오류가 발생합니다. buffer 인수는 NULL이 될 수 있습니다.;버퍼의 최소 크기 maxlen 는 (더 필요한 경우에) 경로를 저장하기 위해 malloc을 사용하여, 자동으로 할당됩니다. 이 버퍼는 free 를 호출하고 버퍼를 _getcwd 반환 값 (할당 버퍼에 대한 포인터)에 전달하여 해체될 수 있습니다.
_getcwd 는 현재 작업 디렉터리의 경로 나타내는 string을 반환합니다. 현재 작업 디렉터리가 루트이면, 백슬래시 ( \ )를 사용하여 문자열을 종료합니다. 현재 작업 디렉터리가 루트 이외의 디렉터리이면, 디렉터리 이름 및 백슬래시를 사용하지 않고 문자열이 종료됩니다.
_wgetcwd 는 _getcwd 의 와이드 문자 버전입니다. buffer 인수와 _wgetcwd 의 반환 값은 와이드 문자 문자열입니다. _wgetcwd 및 _getcwd 는 동일하게 작동합니다.
_DEBUG 및 _CRTDBG_MAP_ALLOC 이 정의될 때, _getcwd 및 _wgetcwd 호출은 디버깅 메모리를 허용하는 _getcwd_dbg 및 _wgetcwd_dbg 에 대한 호출로 대체됩니다. 자세한 내용은 다음 _getcwd_dbg, _wgetcwd_dbg을 참조하십시오.
제네릭 텍스트 라우팅 매핑
Tchar.h 루틴 |
_UNICODE 및 _MBCS 정의되지 않음 |
_MBCS 정의됨 |
_UNICODE 정의됨 |
---|---|---|---|
_tgetcwd |
_getcwd |
_getcwd |
_wgetcwd |
요구 사항
루틴 |
필수 헤더 |
---|---|
_getcwd |
<direct.h> |
_wgetcwd |
<direct.h> 또는 <wchar.h> |
호환성 정보에 대한 자세한 내용은 호환성을 참조하십시오.
예제
// crt_getcwd.c
// This program places the name of the current directory in the
// buffer array, then displays the name of the current directory
// on the screen. Passing NULL as the buffer forces getcwd to allocate
// memory for the path, which allows the code to support file paths
// longer than _MAX_PATH, which are supported by NTFS.
#include <direct.h>
#include <stdlib.h>
#include <stdio.h>
int main( void )
{
char* buffer;
// Get the current working directory:
if( (buffer = _getcwd( NULL, 0 )) == NULL )
perror( "_getcwd error" );
else
{
printf( "%s \nLength: %d\n", buffer, strnlen(buffer) );
free(buffer);
}
}
해당 .NET Framework 항목
System::Environment::CurrentDirectory