다음을 통해 공유


_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

참고 항목

참조

디렉터리 제어

_chdir, _wchdir

_mkdir, _wmkdir

_rmdir, _wrmdir