_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 NULL
wartość , 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 dirname
okreś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ą ; _chdir
argument 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