Поделиться через


_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");

Если в путях используется необязательная обратная косая черта (\), в строковом литерале С необходимо задавать две обратные косые черты (\\) для представления одной обратной косой черты (\).

_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