_getdcwd
, _wgetdcwd
Ottiene il percorso completo della directory di lavoro corrente nell'unità specificata.
Sintassi
char *_getdcwd(
int drive,
char *buffer,
int maxlen
);
wchar_t *_wgetdcwd(
int drive,
wchar_t *buffer,
int maxlen
);
Parametri
drive
Integer non negativo che specifica l'unità (0 = unità predefinita, 1 = A, B = 2, e così via).
Se l'unità specificata non è disponibile, viene richiamato il gestore di parametri non validi. Viene richiamato anche quando non è possibile determinare il tipo di unità (ad esempio, rimovibile, fisso, CD-ROM, disco RAM o unità di rete). Per altre informazioni, vedere Convalida dei parametri.
buffer
Percorso di archiviazione per il percorso o NULL
.
Se NULL
viene specificato, questa funzione alloca un buffer di almeno maxlen
le dimensioni usando malloc
e il valore restituito di _getdcwd
è un puntatore al buffer allocato. Il buffer può essere liberato chiamando la funzione free
e passandola al puntatore.
maxlen
Un integer positivo diverso da zero che specifica la lunghezza massima del percorso, in caratteri: char
per _getdcwd
e wchar_t
per _wgetdcwd
.
Se maxlen
è minore o uguale a zero, viene richiamato il gestore di parametri non validi. Per altre informazioni, vedere Convalida dei parametri.
Valore restituito
Puntatore a una stringa che rappresenta il percorso completo della directory di lavoro corrente nell'unità specificata, o NULL
, che indica un errore.
Se buffer
viene specificato come NULL
e memoria insufficiente per allocare maxlen
i caratteri, si verifica un errore e errno
viene impostato su ENOMEM
. Se la lunghezza del percorso che include il carattere Null di terminazione supera maxlen
, si verifica un errore e errno
viene impostata su ERANGE
. Per altre informazioni su questi codici di errore, vedere errno
, _doserrno
, _sys_errlist
e _sys_nerr
.
Osservazioni:
La funzione _getdcwd
ottiene il percorso completo della directory di lavoro corrente nell'unità specificata e lo archivia in buffer
. Se la directory di lavoro corrente è impostata sulla radice, la stringa termina con una barra rovesciata (\). Se la directory di lavoro corrente è impostata su una directory diversa dalla quella radice, la stringa termina con il nome della directory e non con una barra rovesciata.
_wgetdcwd
è una versione a caratteri wide di _getdcwd
il cui parametro buffer
e il cui valore restituito sono stringhe a caratteri wide. In caso contrario, _wgetdcwd
e _getdcwd
si comportano in modo identico.
Questa funzione è thread-safe anche se dipende da GetFullPathName
, che non è thread-safe. Tuttavia, è possibile violare la thread safety se l'applicazione multithreading chiama sia questa funzione GetFullPathName
che .
La versione di questa funzione con il _nolock
suffisso si comporta in modo identico a questa funzione, ad eccezione del fatto che non è thread-safe e non è protetta da interferenze da altri thread. Per altre informazioni, vedere _getdcwd_nolock
e _wgetdcwd_nolock
.
Quando _DEBUG
e _CRTDBG_MAP_ALLOC
sono definiti, le chiamate a e _wgetdcwd
vengono sostituite da chiamate a _getdcwd
_getdcwd_dbg
e _wgetdcwd_dbg
, in modo da poter eseguire il debug delle allocazioni di memoria. Per altre informazioni, vedere_getdcwd_dbg
. _wgetdcwd_dbg
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
Routine Tchar.h | _UNICODE e _MBCS non definito |
_MBCS definito |
_UNICODE definito |
---|---|---|---|
_tgetdcwd |
_getdcwd |
_getdcwd |
_wgetdcwd |
Requisiti
Ciclo | Intestazione obbligatoria |
---|---|
_getdcwd |
<direct.h> |
_wgetdcwd |
<direct.h> o <wchar.h> |
Per altre informazioni sulla compatibilità, vedere Compatibility (Compatibilità).
Esempio
Vedere l'esempio in _getdrive
.
Vedi anche
Controllo directory
_chdir
, _wchdir
_getcwd
, _wgetcwd
_getdrive
_mkdir
, _wmkdir
_rmdir
, _wrmdir