_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_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