_chdir
, _wchdir
變更目前工作目錄。
語法
int _chdir(
const char *dirname
);
int _wchdir(
const wchar_t *dirname
);
參數
dirname
新工作目錄的路徑。
傳回值
如果成功,這些函式會傳回值 0。 -1 的傳回值表示失敗。 如果找不到指定的路徑, errno
則會設定為 ENOENT
。 如果 dirname
為 NULL
,將會叫用無效參數處理常式,如參數驗證 (部分機器翻譯) 中所述。 如果允許繼續執行, errno
會設定為 EINVAL
,且此函式會傳回 -1。
備註
_chdir
函式會將目前工作目錄變更為 dirname
指定的目錄。 dirname
參數必須參考現有的目錄。 這個函式可以變更任何磁碟機上的目前工作目錄。 如果在 dirname
中指定了新的磁碟機代號,預設磁碟機代號也會變更。 例如,假設 A
是默認驅動器號,而 \BIN
是目前的工作目錄。 下列呼叫會將磁碟驅動器 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