Partager via


_getcwd, _wgetcwd

Obtient le répertoire de travail actuel.

Syntaxe

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

Paramètres

buffer
Emplacement de stockage pour le chemin.

maxlen
Longueur maximale du chemin d'accès en caractères : char pour _getcwd et wchar_t pour _wgetcwd.

Valeur retournée

Retourne un pointeur vers buffer. Une NULL valeur de retour indique une erreur et errno est définie ENOMEMsur , indiquant qu’il n’y a pas de mémoire suffisante pour allouer des maxlen octets (lorsqu’un NULL argument est donné en tant que buffer), ou à ERANGE, indiquant que le chemin d’accès est plus long que les maxlen caractères. Si maxlen elle est inférieure ou égale à zéro, cette fonction appelle un gestionnaire de paramètres non valide, comme décrit dans la validation des paramètres.

Pour plus d’informations sur ces codes de retour et d’autres codes de retour, consultez , , _sys_errlist_doserrnoet _sys_nerr.errno

Notes

La fonction _getcwd obtient le chemin complet du répertoire de travail actuel pour le lecteur spécifié et le stocke dans buffer. L’argument entier maxlen spécifie la longueur maximale du chemin. Une erreur se produit si la longueur du chemin (y compris le caractère null de fin) dépasse maxlen. La fonction buffer peut être NULL; une mémoire tampon d’une taille d’au moins maxlen (plus seulement si nécessaire) est allouée automatiquement, en utilisant malloc, pour stocker le chemin. Cette mémoire tampon ultérieurement peut être libérée en appelant free et en lui passant la valeur de retour _getcwd (un pointeur vers la mémoire tampon allouée).

_getcwd retourne une chaîne qui représente le chemin du 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 autre que la racine, la chaîne se termine par le nom du répertoire, et non pas par une barre oblique inverse.

_wgetcwd est une version à caractères larges de _getcwd; l’argument buffer et la valeur de retour de _wgetcwd sont des chaînes à caractères larges. Sinon,_wgetcwd et _getcwd se comportent de la même façon.

Quand _DEBUG et _CRTDBG_MAP_ALLOC sont définis, les appels vers _getcwd et _wgetcwd sont remplacés par des appels à _getcwd_dbg et _wgetcwd_dbg, pour vous permettre de déboguer des allocations de mémoire. Pour plus d’informations, consultez _getcwd_dbg, _wgetcwd_dbg.

Par défaut, l’état global de cette fonction est limité à l’application. Pour modifier ce comportement, consultez État global dans le CRT.

Mappages de routines de texte générique

Routine Tchar.h _UNICODE et _MBCS non définis _MBCS défini _UNICODE défini
_tgetcwd _getcwd _getcwd _wgetcwd

Spécifications

Routine En-tête requis
_getcwd <direct.h>
_wgetcwd <direct.h> ou <wchar.h>

Pour plus d’informations sur la compatibilité, consultez Compatibility.

Exemple

// 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

Voir aussi

Contrôle d’annuaire
_chdir, _wchdir
_mkdir, _wmkdir
_rmdir, _wrmdir