_getcwd, _wgetcwd

 

Date de publication : novembre 2016

Pour obtenir la dernière documentation sur Visual Studio 2017, consultez Documentation Visual Studio 2017.

Obtient le répertoire de travail actuel.

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 en caractères : char pour _getcwd et wchar_t pour _wgetcwd.

Retourne un pointeur vers buffer. Une valeur de retour NULL indique une erreur et errno prend la valeur ENOMEM, ce qui indique que la mémoire est insuffisante pour allouer maxlen octets (quand un argument NULL est donné comme buffer), ou la valeur ERANGE, ce qui indique que le chemin d’accès fait plus de maxlen caractères. Si maxlen est inférieur ou égal à zéro, cette fonction appelle un gestionnaire de paramètre non valide, comme décrit dans Parameter Validation.

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

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).

_getcwdRetourne une chaîne qui représente le chemin d’accès 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 à _getcwd et _wgetcwd sont remplacés par les appels à _getcwd_dbg et _wgetcwd_dbg pour permettre le débogage des allocations de mémoire. 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
RoutineEn-tête requis
_getcwd<direct.h>
_wgetcwd<direct.h> ou <wchar.h>

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

// 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);  
   }  
}  

C:\Code  

System::Environment::CurrentDirectory

Contrôle de répertoire
_chdir, _wchdir
_mkdir, _wmkdir
_rmdir, _wrmdir

Afficher: