Partager via


_getcwd, _wgetcwd

Obtient le répertoire actif.

Important

Cette API ne peut pas être utilisée dans les applications qui s'exécutent dans le Windows Runtime.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 tracé.

  • maxlen
    La longueur maximale du tracé en caractères est : char pour _getcwd et wchar_t pour _wgetcwd.

Valeur de retour

Retourne un pointeur vers un buffer. Une valeur de retour NULL indique une erreur, et errno est réglé soit à la valeur ENOMEM, indiquant que la mémoire est insuffisante pour allouer maxlen octets (lorsqu'un argument NULL est fourni comme buffer), soit à la valeur ERANGE, indiquant que le tracé dépasse maxlen caractères. Si maxlen est inférieur ou égal à zéro, cette fonction appelle un gestionnaire de paramètres non valides, comme il est décrit dans Validation de paramètre.

Pour plus d'informations sur ces codes de retour et autres, consultez _doserrno, errno, _sys_errlist et _sys_nerr.

Notes

La fonction _getcwd permet d'obtenir le chemin complet du répertoire actif du disque par défaut et l'enregistre dans buffer. L'argument entier maxlen spécifie la longueur maximale du tracé. Une erreur se produit si la longueur du tracé (en comptant le caractère null de fin) dépasse maxlen*.* L'argument buffer peut être de valeur NULL; une mémoire tampon d'au moins la taille maxlen (supérieur uniquement si nécessaire) est automatiquement allouée, grâce à la fonction malloc, pour stocker le chemin d'accès. Cette mémoire tampon peut ensuite ê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 tracé 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 inversée ( \ ). 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 répertoire et non par une barre oblique inverse.

_wgetcwd est une version caractères larges _getcwd; l'argument buffer et la valeur de retour de _wgetcwd sont des chaînes de caractères larges. _wgetcwd et _getcwd se comportent sinon de manière identique.

Lorsque _DEBUG et _CRTDBG_MAP_ALLOC sont définis, les appels à _getcwd et _wgetcwd sont remplacés par des appels à _getcwd_dbg et _wgetcwd_dbg pour conserver de la mémoire pour les allocations de déboguage. Pour plus d'informations, consultez _getcwd_dbg, _wgetcwd_dbg.

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

Configuration requise

Routine

En-tête requis

_getcwd

<direct.h>

_wgetcwd

<direct.h> or <wchar.h>

Pour plus d'informations sur la compatibilité, consultez Compatibilité.

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

Voir aussi

Référence

Contrôle de répertoire

_chdir, _wchdir

_mkdir, _wmkdir

_rmdir, _wrmdir