_chdir
, _wchdir
Modifica la directory di lavoro corrente.
Sintassi
int _chdir(
const char *dirname
);
int _wchdir(
const wchar_t *dirname
);
Parametri
dirname
Percorso della nuova directory di lavoro.
Valore restituito
Se eseguite correttamente, queste funzioni restituiscono un valore pari a 0. Il valore restituito -1 indica un errore. Se non è stato possibile trovare il percorso specificato, errno
è impostato su ENOENT
. Se dirname
è NULL
, viene richiamato il gestore di parametri non validi, come descritto in Convalida dei parametri. Se l'esecuzione può continuare, errno
viene impostato su EINVAL
e la funzione restituisce -1.
Osservazioni:
La funzione _chdir
consente di passare dalla directory di lavoro corrente a quella specificata da dirname
. Il parametro dirname
deve fare riferimento a una directory esistente. Questa funzione può modificare la directory di lavoro corrente in qualsiasi unità. Se viene specificata una nuova lettera di unità in dirname
, anche la lettera di unità predefinita verrà modificata. Si supponga A
, ad esempio, che sia la lettera di unità predefinita e \BIN
che sia la directory di lavoro corrente. La chiamata seguente modifica la directory di lavoro corrente per l'unità C
in \temp
e viene C
stabilita come nuova unità predefinita:
_chdir("c:\\temp");
Quando si usa il carattere barra rovesciata (\
) facoltativo nei percorsi, si devono inserire due caratteri di barra rovesciata (\\
) in un valore letterale stringa C per rappresentare una singola barra rovesciata (\
).
_wchdir
è una versione a caratteri wide di _chdir
; l'argomento dirname
in _wchdir
è una stringa di caratteri wide. In caso contrario,_wchdir
e _chdir
si comportano in modo identico.
Per impostazione predefinita, lo stato globale di questa funzione è limitato all'applicazione. Per modificare questo comportamento, vedere Stato globale in CRT.
Mapping di routine di testo generico
Tchar.h routine |
_UNICODE e _MBCS non definito |
_MBCS definito |
_UNICODE definito |
---|---|---|---|
_tchdir |
_chdir |
_chdir |
_wchdir |
Requisiti
Ciclo | Intestazione obbligatoria | Intestazione facoltativa |
---|---|---|
_chdir |
<direct.h> |
<errno.h> |
_wchdir |
<direct.h> oppure <wchar.h> |
<errno.h> |
Per altre informazioni sulla compatibilità, vedere Compatibility (Compatibilità).
Esempio
// 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
Vedi anche
Controllo directory
_mkdir
, _wmkdir
_rmdir
, _wrmdir
system
, _wsystem