Condividi tramite


_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 malloce 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_errliste _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 _getdcwdil 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 GetFullPathNameche .

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_nolocke _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