_chdir
, _wchdir
현재 작업 디렉터리를 변경합니다.
구문
int _chdir(
const char *dirname
);
int _wchdir(
const wchar_t *dirname
);
매개 변수
dirname
새 작업 디렉터리의 경로입니다.
반환 값
이러한 함수는 성공할 경우 0 값을 반환합니다. 반환 값 -1은 실패를 나타냅니다. 지정된 경로를 찾을 errno
수 없으면 .로 ENOENT
설정됩니다. 검사점 생성 시 dirname
가 NULL
인 경우 Parameter Validation를 참조하세요. 계속해서 실행하도록 허용된 경우 errno
는 EINVAL
로 설정되고 함수는 -1을 반환합니다.
설명
_chdir
함수는 현재 작업 디렉터리를 dirname
에 지정된 디렉터리로 변경합니다. dirname
매개 변수는 기존 디렉터리를 참조해야 합니다. 이 함수는 모든 드라이브에서 현재 작업 디렉터리를 변경할 수 있습니다. dirname
에 새 드라이브 문자를 지정하면 기본 드라이브 문자도 변경됩니다. 예를 들어 기본 드라이브 문자이며 \BIN
현재 작업 디렉터리라고 가정 A
합니다. 다음 호출은 드라이브의 현재 작업 디렉터리를 새 기본 드라이브 C
\temp
로 변경하고 설정합니다 C
.
_chdir("c:\\temp");
경로에 선택적 백슬래시 문자(\
)를 사용하는 경우 단일 백슬래시(\\
)를 나타내려면 C 문자열 리터럴에 백슬래시 두 개(\
)를 배치해야 합니다.
_wchdir
은 _chdir
의 와이드 문자 버전이며, dirname
에 대한 _wchdir
인수는 와이드 문자열입니다. 그렇지 않으면_wchdir
과 _chdir
이 동일하게 작동합니다.
기본적으로 이 함수의 전역 상태는 애플리케이션으로 범위가 지정됩니다. 이 동작을 변경하려면 CRT 전역 상태를 참조하세요.
일반 텍스트 루틴 매핑
Tchar.h 루틴 |
_UNICODE 및 _MBCS 정의되지 않음 |
정의된 _MBCS |
정의된 _UNICODE |
---|---|---|---|
_tchdir |
_chdir |
_chdir |
_wchdir |
요구 사항
루틴에서 반환된 값 | 필수 헤더 | 선택적 헤더 |
---|---|---|
_chdir |
<direct.h> |
<errno.h> |
_wchdir |
<direct.h> 또는 <wchar.h> |
<errno.h> |
호환성에 대한 자세한 내용은 호환성을 참조하세요.
예시
// crt_chdir.c
// arguments: C:\WINDOWS
/* This program uses the _chdir function to verify
that a given directory exists. */
#include <direct.h>
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
int main( int argc, char *argv[] )
{
if(_chdir( argv[1] ) )
{
switch (errno)
{
case ENOENT:
printf( "Unable to locate the directory: %s\n", argv[1] );
break;
case EINVAL:
printf( "Invalid buffer.\n");
break;
default:
printf( "Unknown error.\n");
}
}
else
system( "dir *.exe");
}
Volume in drive C has no label.
Volume Serial Number is 2018-08A1
Directory of c:\windows
08/29/2002 04:00 AM 1,004,032 explorer.exe
12/17/2002 04:43 PM 10,752 hh.exe
03/03/2003 09:24 AM 33,792 ieuninst.exe
10/29/1998 04:45 PM 306,688 IsUninst.exe
08/29/2002 04:00 AM 66,048 NOTEPAD.EXE
03/03/2003 09:24 AM 33,792 Q330994.exe
08/29/2002 04:00 AM 134,144 regedit.exe
02/28/2003 06:26 PM 46,352 setdebug.exe
08/29/2002 04:00 AM 15,360 TASKMAN.EXE
08/29/2002 04:00 AM 49,680 twunk_16.exe
08/29/2002 04:00 AM 25,600 twunk_32.exe
08/29/2002 04:00 AM 256,192 winhelp.exe
08/29/2002 04:00 AM 266,752 winhlp32.exe
13 File(s) 2,249,184 bytes
0 Dir(s) 67,326,029,824 bytes free