%>
更改当前工作目录。
语法
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
另请参阅
目录控制
%>
%>
%>