Condividi tramite


_getdcwd, _wgetdcwd

Ottiene il percorso completo della directory di lavoro corrente nell'unità specificata.

Nota importanteImportante

Questa API non può essere utilizzata nelle applicazioni che vengono eseguite in Windows Runtime.Per ulteriori informazioni, vedere Funzioni CRT non supportate con /ZW.

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, o il tipo di unità, (ad esempio disco rimovibile, fisso, CD-ROM, RAM, o un'unità di rete) non può essere determinata, il gestore di parametro non valido, come descritto in Convalida dei parametri, viene richiamato.

  • buffer
    Posizione di archiviazione per il percorso, o NULL.

    Se impostato a NULL, questa funzione alloca almeno un buffer di dimensione maxlen utilizzando malloc e il valore restituito da _getdcwd è un puntatore al buffer allocato.Il buffer può essere liberato chiamando la funzione free e passandole il puntatore.

  • maxlen
    Un numero intero positivo diverso da zero che specifica la lunghezza massima del percorso, in caratteri: char per _getdcwd e wchar_t per _wgetdcwd.

    Se maxlen non è maggiore di zero, il gestore di parametro non valido, descritto in Convalida dei parametri, viene richiamato.

Valore restituito

Puntatore a una stringa che rappresenta il percorso completo della cartella di lavoro corrente nell'unità specificata, o NULL, che indica un errore.

Se buffer viene impostato a NULL e non vi è memoria sufficiente per allocare un numero maxlen di caratteri, si verifica un errore e errno viene impostato su ENOMEM.Se la lunghezza del percorso, incluso il carattere di terminazione null, supera maxlen, si verifica un errore e errno viene impostato a ERANGE.Per ulteriori informazioni su questi codici di errore, vedere errno, _doserrno, _sys_errlist e _sys_nerr.

Note

La funzione _getdcwd ottiene il percorso completo della cartella di lavoro corrente nell'unità specificata e lo archivia in buffer.Se la cartella di lavoro corrente è impostata nella cartella radice, la stringa termina con una barra rovesciata (\).Se la cartella di lavoro corrente è impostata su una directory diversa dalla radice, la stringa termina con il nome della directory e non con una barra rovesciata.

_wgetdcwd è una versione a caratteri di tipo "wide" di _getdcwde il relativo parametro buffer e valore restituito sono stringhe di caratteri di tipo "wide".Altrimenti _wgetdcwd e _getdcwd si comportano in modo identico.

Questa funzione è comunque thread-safe anche se dipende da GetFullPathName, che è non thread-safe.Tuttavia, è possibile violare il thread safety se l'applicazione multithread chiama sia questa funzione che GetFullPathName.Per ulteriori informazioni, andare su MSDN Library e cercare GetFullPathName.

La versione di questa funzione con il suffisso _nolock si comporta in modo identico a questa funzione con l'eccezione che non è thread-safe e non è protetta da interferenze da parte di altri thread.Per ulteriori informazioni, vedere _getdcwd_nolock, _wgetdcwd_nolock.

Quando _DEBUG e _CRTDBG_MAP_ALLOC vengono definiti, le chiamate a _getdcwd e _wgetdcwd vengono sostituite dalle chiamate a _getdcwd_dbg e a _wgetdcwd_dbg in modo da consentire il debug delle allocazioni di memoria.Per ulteriori informazioni, vedere _getdcwd_dbg, _wgetdcwd_dbg.

Mapping di routine a Testo generico

Routine Tchar.h

_UNICODE e _MBCS non definiti

_MBCS definito

_UNICODE definito

_tgetdcwd

_getdcwd

_getdcwd

_wgetdcwd

Requisiti

Routine

Intestazione obbligatoria

_getdcwd

<direct.h>

_wgetdcwd

<direct.h> o <wchar.h>

Per ulteriori informazioni di compatibilità, vedere Compatibilità.

Esempio

Vedere l'esempio in _getdrive.

Equivalente .NET Framework

System::Environment::CurrentDirectory

Vedere anche

Riferimenti

Controllo della directory

_chdir, _wchdir

_getcwd, _wgetcwd

_getdrive

_mkdir, _wmkdir

_rmdir, _wrmdir