Participer au site avec un Tip
Rechercher
 

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 :

Fonction getcwd - Entête <unistd.h>

#include <unistd.h>

Fonction getcwd

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

Paramètres

Valeur de retour

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

Codes erreurs pouvant être retournés

Exemple de code

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;
}
Exemple d'utilisation de la fonction getcwd

Et voici le résultat produit par cet exemple.

$> essai
Current working directory: /home/dominique/Desktop
$> 

Conformité

POSIX 88 (IEEE Std 1003.1-1988) et versions ultérieures.

Sujets connexes