Udostępnij za pośrednictwem


_chdir, _wchdir

Zmienia bieżący katalog roboczy.

Składnia

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

Parametry

dirname
Ścieżka nowego katalogu roboczego.

Wartość zwracana

Te funkcje zwracają wartość 0, jeśli się powiedzie. Wartość zwracana -1 wskazuje błąd. Jeśli nie można odnaleźć określonej ścieżki, errno zostanie ustawiona wartość ENOENT. Jeśli dirname parametr ma NULLwartość , wywoływana jest nieprawidłowa procedura obsługi parametrów, zgodnie z opisem w temacie Weryfikacja parametrów. Jeśli wykonywanie jest dozwolone do kontynuowania, jest ustawione na EINVAL , errno a funkcja zwraca wartość -1.

Uwagi

Funkcja _chdir zmienia bieżący katalog roboczy na katalog określony przez dirname. Parametr dirname musi odwoływać się do istniejącego katalogu. Ta funkcja może zmienić bieżący katalog roboczy na dowolnym dysku. Jeśli w pliku dirnameokreślono nową literę dysku , zostanie również zmieniona domyślna litera dysku. Załóżmy na przykład, że A jest to domyślna litera dysku i \BIN jest bieżącym katalogem roboczym. Następujące wywołanie zmienia bieżący katalog roboczy dla dysku C \temp na i ustanawia C jako nowy dysk domyślny:

_chdir("c:\\temp");

W przypadku używania opcjonalnego znaku ukośnika odwrotnego (\) w ścieżkach należy umieścić dwa ukośniki odwrotne (\\) w literału ciągu języka C, aby reprezentować pojedynczy ukośnik odwrotny (\).

_wchdir jest wersją szerokoznakową ; _chdirargument to dirname _wchdir ciąg o szerokim znaku. _wchdir i _chdir zachowywać się identycznie inaczej.

Domyślnie stan globalny tej funkcji jest zakresem aplikacji. Aby zmienić to zachowanie, zobacz Stan globalny w CRT.

Mapowanie rutynowego tekstu ogólnego

Tchar.h rutyna _UNICODE i _MBCS niezdefiniowane _MBCS zdefiniowany _UNICODE zdefiniowany
_tchdir _chdir _chdir _wchdir

Wymagania

Procedura Wymagany nagłówek Opcjonalny nagłówek
_chdir <direct.h> <errno.h>
_wchdir <direct.h> lub <wchar.h> <errno.h>

Aby uzyskać więcej informacji o zgodności, zobacz Zgodność.

Przykład

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

Zobacz też

Kontrolka katalogu
_mkdir, _wmkdir
_rmdir, _wrmdir
system, _wsystem