Sdílet prostřednictvím


_chdir, _wchdir

Změní aktuální pracovní adresář.

Syntaxe

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

Parametry

dirname
Cesta k novému pracovnímu adresáři

Vrácená hodnota

Pokud jsou tyto funkce úspěšné, vrátí hodnotu 0. Vrácená hodnota -1 označuje selhání. Pokud se zadaná cesta nenašla, errno je nastavená na ENOENThodnotu . Pokud dirname je NULL, je vyvolána neplatná obslužná rutina parametru, jak je popsáno v ověření parametru. Pokud je spuštění povoleno pokračovat, errno je nastaveno na EINVAL hodnotu a funkce vrátí hodnotu -1.

Poznámky

Funkce _chdir změní aktuální pracovní adresář na adresář určený dirname. Parametr dirname musí odkazovat na existující adresář. Tato funkce může změnit aktuální pracovní adresář na libovolné jednotce. Pokud je zadáno dirnamenové písmeno jednotky, změní se i výchozí písmeno jednotky. Předpokládejme například, že A je výchozí písmeno jednotky a \BIN je aktuální pracovní adresář. Následující volání změní aktuální pracovní adresář jednotky C na \temp jednotku a vytvoří C jako novou výchozí jednotku:

_chdir("c:\\temp");

Pokud použijete volitelný znak zpětného lomítka (\) v cestách, musíte umístit dvě zpětná lomítka (\\) do řetězcového literálu jazyka C, aby představovala jedno zpětné lomítko (\).

_wchdirje verze širokého znaku _chdirdirname ; argument je _wchdir řetězec širokého znaku. _wchdir a _chdir chovat se stejně jinak.

Ve výchozím nastavení je globální stav této funkce vymezen na aplikaci. Chcete-li toto chování změnit, přečtěte si téma Globální stav v CRT.

Mapování rutin obecného textu

Tchar.h rutina _UNICODE a _MBCS není definován _MBCS definovaný _UNICODE definovaný
_tchdir _chdir _chdir _wchdir

Požadavky

Rutina Požadovaný hlavičkový soubor Volitelné záhlaví
_chdir <direct.h> <errno.h>
_wchdir <direct.h> nebo <wchar.h> <errno.h>

Další informace o kompatibilitě najdete v tématu Kompatibilita.

Příklad

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

Viz také

Ovládací prvek adresář
_mkdir, _wmkdir
_rmdir, _wrmdir
system, _wsystem