_chdir、_wchdir
改变当前的工作目录。
重要
此 API 不能用于在 Windows 运行时中执行的应用程序。有关详细信息,请参见 CRT functions not supported with /ZW(CRT 函数不支持使用/ZW)。
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 的当前工作目录并建立 C 作为新默认驱动程序:
_chdir("c:\\temp");
当您在路径中使用选项反斜杠字符 (\) 时,在 C 字符串中必须将两个反斜杠 (\\) 表示一个反斜杠 (\)。
_wchdir 是 _chdir的宽字符版本; _wchdir 的 dirname 参数是宽字符字符串. _wchdir ,否则_chdir 具有相同的行为。
通用文本程序映射:
Tchar.h 例程 |
未定义 _UNICODE 和 _MBCS |
已定义 _MBCS |
已定义 _UNICODE |
---|---|---|---|
_tchdir |
_chdir |
_chdir |
_wchdir |
要求
例程 |
必需的标头 |
可选标头 |
---|---|---|
_chdir |
<direct.h> |
<errno.h> |
_wchdir |
<direct.h> or <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");
}
.NET Framework 等效项
System::Environment::CurrentDirectory