_chdir, _wchdir

變更目前工作目錄。

語法

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

參數

dirname
新工作目錄的路徑。

傳回值

如果成功,這些函式會傳回值 0。 -1 的傳回值表示失敗。 如果找不到指定的路徑, errno 則會設定為 ENOENT 。 如果 dirnameNULL ,則會叫用不正確參數處理常式,如參數驗證 中所述 。 如果允許繼續執行, errno 會設定為 EINVAL ,且此函式會傳回 -1。

備註

_chdir 函式會將目前工作目錄變更為 dirname指定的目錄。 dirname 參數必須參考現有的目錄。 這個函式可以變更任何磁碟機上的目前工作目錄。 如果在 dirname中指定了新的磁碟機代號,預設磁碟機代號也會變更。 例如,假設 A 是預設磁碟機號,而 \BIN 是目前的工作目錄。 下列呼叫會將磁片磁碟機 C 的目前工作目錄變更為 \temp ,並建立 C 為新的預設磁片磁碟機:

_chdir("c:\\temp");

當您在路徑中使用選擇性反斜線字元 (\) 時,您必須在 C 字串常值中放置兩個反斜線 (\\) 來表示單一反斜線 (\)。

_wchdir 是寬字元版本的 _chdirdirname_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