_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
Percorso di archiviazione per il percorso.maxlen
Lunghezza del percorso nei caratteri: char per _getcwd e wchar_t per _wgetcwd.
Valore restituito
Restituisce un puntatore a buffer.Un valore restituito di NULL indica un errore e errno è impostato su qualsiasi ENOMEM, per indicare che è disponibile memoria sufficiente per allocare i byte di maxlen (quando un argomento di NULL viene fornito come buffer), o a ERANGE, per indicare che il percorso è più lungo di maxlen.Se maxlen è minore o uguale a zero, chiamare questa funzione di un gestore non valido di parametro, 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 di _getcwd ottiene il percorso completo della cartella di lavoro corrente dell'unità predefinito 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 (carattere di terminazione null incluso) supera maxlen*.* L'argomento di buffer può essere NULL; almeno un buffer di dimensione maxlen (solo se necessario) viene automaticamente allocato, utilizzando malloc, per archiviare il percorso.Questo buffer può più essere successivamente liberato free chiamando e passando il valore restituito di _getcwd (un puntatore a un buffer allocato).
_getcwd restituisce una stringa che rappresenta il percorso della cartella di lavoro corrente.Se la cartella di lavoro corrente è la radice, la stringa termina con una barra rovesciata ( \ ).Se la cartella di lavoro corrente è una directory diversa dalla radice, la stringa termina con il nome della directory e non da una barra rovesciata.
_wgetcwd è una versione a caratteri estesi di _getcwd; l'argomento di buffer e il valore restituito di _wgetcwd sono stringhe di caratteri estesi._wgetcwd e _getcwd si comportano in modo identico in caso contrario.
Quando _DEBUG e _CRTDBG_MAP_ALLOC sono definiti, le chiamate a _getcwd e _wgetcwd vengono sostituiti dalle chiamate a _getcwd_dbg e a _wgetcwd_dbg per consentire le allocazioni di memoria di debug.Per ulteriori informazioni, vedere _getcwd_dbg, _wgetcwd_dbg.
Mapping di routine a 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à nell'introduzione.
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