_getcwd, _wgetcwd

Ottiene la directory di lavoro corrente.

Sintassi

char *_getcwd(
   char *buffer,
   int maxlen
);
wchar_t *_wgetcwd(
   wchar_t *buffer,
   int maxlen
);

Parametri

buffer
Posizione di archiviazione per il percorso.

maxlen
Lunghezza massima del percorso in caratteri: char per _getcwd e wchar_t per _wgetcwd.

Valore restituito

Restituisce un puntatore a buffer. Un NULL valore restituito indica un errore e errno viene impostato su ENOMEM, a indicare che memoria insufficiente per allocare maxlen byte (quando un NULL argomento viene specificato come buffer) o su ERANGE, a indicare che il percorso è più lungo dei maxlen caratteri. Se maxlen è minore o uguale a zero, questa funzione richiama un gestore di parametri non validi, come descritto in Convalida dei parametri.

Per altre informazioni su questi e altri codici restituiti, vedere errno, _doserrno, _sys_errliste _sys_nerr.

Osservazioni:

La funzione _getcwd ottiene il percorso completo della directory di lavoro corrente per l'unità predefinita e la archivia in buffer. L'argomento Integer maxlen specifica la lunghezza massima per il percorso. Si verifica un errore se la lunghezza del percorso (incluso il carattere Null di terminazione) supera maxlen. L'argomento buffer può essere NULL. Viene allocato automaticamente un buffer con dimensione di almeno maxlen (più grande solo se necessario) usando malloc, per archiviare il percorso. Questo buffer può essere successivamente liberato chiamando free e passandogli il valore restituito _getcwd (un puntatore al buffer allocato).

_getcwd restituisce una stringa che rappresenta il percorso della directory di lavoro corrente. Se la directory di lavoro corrente è la 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.

_wgetcwd è una versione a caratteri wide di _getcwd. L'argomento buffer e il valore restituito da _wgetcwd è dato da stringhe a caratteri wide. In caso contrario,_wgetcwd e _getcwd si comportano in modo identico.

Quando _DEBUG e _CRTDBG_MAP_ALLOC vengono definiti, le chiamate a _getcwd e _wgetcwd vengono sostituite da chiamate a _getcwd_dbg e _wgetcwd_dbg, per consentire di eseguire il debug delle allocazioni di memoria. Per altre informazioni, vedere _getcwd_dbge _wgetcwd_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

Tchar.h Routine _UNICODE e _MBCS non definito _MBCS Definito _UNICODE Definito
_tgetcwd _getcwd _getcwd _wgetcwd

Requisiti

Ciclo Intestazione obbligatoria
_getcwd <direct.h>
_wgetcwd <direct.h> oppure <wchar.h>

Per altre informazioni sulla compatibilità, vedere Compatibility (Compatibilità).

Esempio

// crt_getcwd.c
// Compile with: cl /W4 crt_getcwd.c
// This program places the name of the current directory in the
// buffer array, then displays the name of the current directory
// on the screen. Passing NULL as the buffer forces getcwd to allocate
// memory for the path, which allows the code to support file paths
// longer than _MAX_PATH, which are supported by NTFS.

#include <direct.h> // _getcwd
#include <stdlib.h> // free, perror
#include <stdio.h>  // printf
#include <string.h> // strlen

int main( void )
{
   char* buffer;

   // Get the current working directory:
   if ( (buffer = _getcwd( NULL, 0 )) == NULL )
      perror( "_getcwd error" );
   else
   {
      printf( "%s \nLength: %zu\n", buffer, strlen(buffer) );
      free(buffer);
   }
}
C:\Code

Vedi anche

Controllo directory
_chdir, _wchdir
_mkdir, _wmkdir
_rmdir, _wrmdir