_getcwd, _wgetcwd
Obtient le répertoire de travail actuel.
Important
Cette API ne peut pas être utilisée dans les applications qui s'exécutent dans les fenêtres d'exécution.Pour plus d'informations, consultez Fonctions CRT non prises en charge avec /ZW.
char *_getcwd(
char *buffer,
int maxlen
);
wchar_t *_wgetcwd(
wchar_t *buffer,
int maxlen
);
Paramètres
buffer
Emplacement de stockage pour le chemin d'accès.maxlen
Longueur maximale du chemin d'accès dans les caractères : char pour _getcwd et wchar_t pour _wgetcwd.
Valeur de retour
Retourne un pointeur vers buffer.Une valeur de retour d' NULL indique une erreur, et errno est défini l'un ou l'autre à ENOMEM, indiquant qu'il y a de mémoire insuffisante pour allouer des octets d' maxlen (lorsqu'un argument d' NULL est fourni comme buffer), ou à ERANGE, indiquant que le chemin d'accès est plus long que des caractères d' maxlen .Si maxlen est inférieur ou égal à zéro, cette fonction appelle un gestionnaire de paramètre non valide, comme décrit dans Validation des paramètres.
Pour plus d'informations sur ces derniers et d'autres codes de retour, consultez l' _doserrno, errno, _sys_errlist, et _sys_nerr.
Notes
La fonction d' _getcwd obtient le chemin d'accès complet du répertoire de travail actuel du lecteur par défaut et l'enregistre l'adresse buffer.L'argument entier maxlen spécifie la longueur maximale du chemin d'accès.Une erreur se produit si la longueur du chemin d'accès (caractère NULL de fin) dépasse maxlen*.* L'argument d' buffer peut être NULL; une mémoire tampon au moins de taille maxlen (plus uniquement si nécessaire) est automatiquement allouée, à l'aide de malloc, pour stocker le chemin d'accès.Cette mémoire tampon peut ensuite être libérée en appelant free et en passant la valeur de retour d' _getcwd (un pointeur vers une mémoire tampon allouée).
_getcwd retourne une chaîne qui représente le chemin d'accès au répertoire de travail actuel.Si le répertoire de travail actuel est la racine, la chaîne se termine par une barre oblique inverse ( \ ).Si le répertoire de travail actuel est un répertoire différent de la racine, la chaîne se termine par le nom de dossier et non d'une barre oblique inverse.
_wgetcwd est une version à caractère élargi d' _getcwd; l'argument d' buffer et la valeur de retour d' _wgetcwd sont des chaînes à caractères larges._wgetcwd et _getcwd se comportent de sinon.
Lorsque _DEBUG et _CRTDBG_MAP_ALLOC sont définis, les appels à _getcwd et l' _wgetcwd sont remplacés par des appels à _getcwd_dbg et à _wgetcwd_dbg pour autoriser les allocations de mémoire de débogage.Pour plus d'informations, consultez l' _getcwd_dbg, _wgetcwd_dbg.
Mappages de routines de texte générique
Routine de Tchar.h |
_UNICODE et non définis _MBCS |
_MBCS défini |
_UNICODE défini |
---|---|---|---|
_tgetcwd |
_getcwd |
_getcwd |
_wgetcwd |
Configuration requise
Routine |
En-tête requis |
---|---|
_getcwd |
<direct.h> |
_wgetcwd |
<direct.h> ou <wchar.h> |
Pour plus d'informations de compatibilité, consultez l' Compatibilité dans l'introduction.
Exemple
// 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);
}
}
Équivalent .NET Framework
System::Environment::CurrentDirectory