_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