다음을 통해 공유


_chdir, _wchdir

현재 작업 디렉터리를 변경합니다.

구문

int _chdir(
   const char *dirname
);
int _wchdir(
   const wchar_t *dirname
);

매개 변수

dirname
새 작업 디렉터리의 경로입니다.

반환 값

이러한 함수는 성공할 경우 0 값을 반환합니다. 반환 값 -1은 실패를 나타냅니다. 지정된 경로를 찾을 errno 수 없으면 .로 ENOENT설정됩니다. 검사점 생성 시 dirnameNULL인 경우 Parameter Validation를 참조하세요. 계속해서 실행하도록 허용된 경우 errnoEINVAL 로 설정되고 함수는 -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

참고 항목

디렉터리 컨트롤
_mkdir, _wmkdir
_rmdir, _wrmdir
system, _wsystem