_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