Condividi tramite


_getcwd, _wgetcwd

Ottiene la cartella di lavoro corrente.

Importante

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 *_getcwd( 
   char *buffer,
   int maxlen 
);
wchar_t *_wgetcwd( 
   wchar_t *buffer,
   int maxlen 
);

Parametri

  • buffer
    Locazione 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 valore NULL restituito indica un errore e errno è impostato o in ENOMEM, indicando che c'è memoria sufficiente per allocare maxlen byte (quando un argomento NULL viene fornito come buffer), o in ERANGE, indicando che il percorso più lungo di maxlen caratteri. Se maxlen è minore o uguale a zero, questa funzione invoca un handler per parametri non validi, come descritto in Convalida dei parametri.

Per ulteriori informazioni su questi e altri codici restituiti, vedere _doserrno, errno, _sys_errlist, e _sys_nerr.

Note

La funzione _getcwd ottiene il percorso completo della cartella di lavoro corrente per l'unità disco di default e lo 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 di terminazione null) supera maxlen*.* Il parametro buffer può essere NULL; un buffer con dimensione di almeno maxlen (più grande solo se necessario) viene allocato automaticamente, utilizzando malloc, per archiviare il percorso. Questo buffer può essere successivamente liberato chiamando free passandogli il valore restituito da _getcwd (un puntatore al buffer allocato).

_getcwd restituisce una stringa che rappresenta il percorso della cartella di lavoro corrente. Se la cartella di lavoro corrente è la cartella root, la stringa termina con una barra rovesciata ( \ ). Se la cartella di lavoro corrente è impostata su una directory diversa dalla root, la stringa termina con il nome della directory e non con una barra rovesciata.

_wgetcwd è una versione a caratteri estesi di _getcwd; il parametro buffer e il valore restituito da _wgetcwd sono stringhe a caratteri estesi. _wgetcwd e _getcwd si comportano in modo identico in caso contrario.

Quando _DEBUG e _CRTDBG_MAP_ALLOC sono definiti, le chiamate di _getcwd e _wgetcwd vengono sostituite con le chiamate di _getcwd_dbg e di _wgetcwd_dbg per consentire le allocazioni di memoria di debug. Per ulteriori informazioni, vedere _getcwd_dbg, _wgetcwd_dbg.

Mapping di routine su testo generico

Routine Tchar.h

_UNICODE e _MBCS non definiti

_MBCS definito

_UNICODE definito

_tgetcwd

_getcwd

_getcwd

_wgetcwd

Requisiti

Routine

Intestazione obbligatoria

_getcwd

<direct.h>

_wgetcwd

<direct.h> o <wchar.h>

Per ulteriori informazioni sulla compatibilità, vedere Compatibilità.

Esempio

// 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>
#include <stdlib.h>
#include <stdio.h>

int main( void )
{
   char* buffer;

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

Equivalente .NET Framework

System::Environment::CurrentDirectory

Vedere anche

Riferimenti

Controllo Directory

_chdir, _wchdir

_mkdir, _wmkdir

_rmdir, _wrmdir