_chdir, _wchdir
Изменяет текущую рабочую папку.
Важно!
Этот API невозможно использовать в приложениях, запускаемых в среде выполнения Windows.Дополнительные сведения см. в статье Функции 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, буква диска по умолчанию также меняется. Например, если А — буква диска по умолчанию, и \BIN — текущая рабочая папка, следующий вызов изменит текущую рабочую папку на диска C и установит C как новый диск по умолчанию:
_chdir("c:\\temp");
При использовании необязательной обратной косой черту (\) в указанных расположениях, необходимо задавать две обратные косые черты (\\) в строковом литерале С для представления одной обратной косой черты (\).
_wchdir — расширенная версия _chdir; аргумент dirname в _wchdir — расширенная строка. _wchdir и _chdir одинаковы в остальном.
Универсальное текстовое сопоставление функций:
Подпрограмма 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");
}
Эквивалент в .NET Framework
System::Environment::CurrentDirectory