Рекомендуем использовать Visual Studio 2017

_chdir, _wchdir

 

Опубликовано: Октябрь 2016

Самая актуальная документация по Visual Studio 2017: Документация по Visual Studio 2017.

Изменяет текущий рабочий каталог.

int _chdir(   
   const char *dirname   
);  
int _wchdir(   
   const wchar_t *dirname   
);  

Параметры

dirname
Путь к новому рабочему каталогу.

В случае успешного выполнения эти функции возвращают значение 0. Возвращаемое значение, равное –1, означает сбой. Если указанный путь не найден, для параметра errno устанавливается значение ENOENT. Если параметр dirname имеет значение NULL, вызывается обработчик недопустимых параметров, как описано в разделе Parameter Validation. Если выполнение может быть продолжено, параметр 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>

Дополнительные сведения о совместимости см. в разделе Compatibility.

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

System::Environment::CurrentDirectory

Управление каталогами
_mkdir _wmkdir
_rmdir _wrmdir
система _wsystem

Показ: