#include <unistd.h>
char * getcwd( char *buffer, size_t size );
Cette fonction permet de récupérer le chemin du répertoire de travail courant (getcwd = get current working directory). Le chemin renvoyé sera exprimé en absolu (à partir de la racine du système de fichiers).
Si tout se passe bien, la fonction renvoie un pointeur vers la chaîne contenant votre chemin (en fait, buffer
).
Dans le cas contraire, la valeur NULL
vous sera retournée et la variable errno sera fixée avec le code erreur
constaté.
buffer
est invalide.'\0'
).L'exemple de code suivant permet de récupérer le chemin du répertoire de travail courant.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
#include <errno.h> #include <stdio.h> #include <stdlib.h> #include <unistd.h> // getcwd #define BUFFER_SIZE 30 int main() { char buffer[BUFFER_SIZE]; if ( getcwd( buffer, BUFFER_SIZE ) == NULL ) { fprintf( stderr, "Cannot get current working directory path\n" ); if ( errno == ERANGE ) { fprintf( stderr, "Buffer size is too small.\n" ); } exit( EXIT_FAILURE ); } printf( "Current working directory: %s\n", buffer ); return EXIT_SUCCESS; } |
Et voici le résultat produit par cet exemple.
$> essai Current working directory: /home/dominique/Desktop $>
POSIX 88 (IEEE Std 1003.1-1988) et versions ultérieures.
Améliorations / Corrections
Vous avez des améliorations (ou des corrections) à proposer pour ce document : je vous remerçie par avance de m'en faire part, cela m'aide à améliorer le site.
Emplacement :
Description des améliorations :