GETCWD

Section: Manuel du programmeur Linux (3)
Updated: 28 février 2000
Index Retour au Menu Principal

 

NOM

getcwd - Obtenir le répertoire courant.  

SYNOPSIS

#include <linux/unistd.h>

long *getcwd (char *tampon, unsigned longlongueur);
 

DESCRIPTION

La fonction getcwd() copie le chemin d'accès absolu du répertoire de travail courant dans la chaîne pointée par tampon, qui est de longueur longueur.

Si le chemin du répertoire en cours nécessite un tampon plus long que longueur octets, la fonction renvoie NULL, et errno contient le code d'erreur ERANGE. Une application doit détecter cette erreur et allouer un tampon plus grand si besoin est.

 

VALEUR RENVOYÉE

La longueur du chemin en cas de réussite, une valeur négative en cas d'échec (par exemple si le répertoire en cours n'est pas lisible).  

NOTES

La version de la bibliothèque libc (getcwd(3)) renvoie un pointeur sur un tableau de caractères. L'appel système du noyau renvoie la longueur du tampon rempli (incluant le '\0' final), ou un nombre négatif pour signaler une erreur. La version de la libc devrait donc être :

        char *getcwd(char * buf, longueur_t longueur)
        {
                int retval = sys_getcwd(buf, longueur);
                if (retval >= 0)
                        return buf;
                errno = -retval;
                return NULL;
        }

Cette version serait plus rapide que la version actuelle getcwd(3) qui scanne récursivement '..' jusqu'à atteindre / alors que getcwd(2) utilise les possibilités du dentries cache.  

ERREURS

EFAULT
Erreur lors de la copie de la page tampon allouée dans le noyau vers le tampon alloué par la libc dans l'espace utilisateur.
ENOENT
répertoire inexistant.
ENOMEM
pas assez de mémoire pour allouer une page intermédiaire.
ERANGE
longueur n'est pas assez grande pour stocker le chemin absolu.

 

VOIR AUSSI

chdir(2), getcwd(3),
/usr/src/linux/fs/dcache.c

 

DISPONIBILITÉ

Cet appel système a été ajouté aux noyaux 2.3.x.

 

AUTEUR

Thierry Vignaud <tvignaud@mandrakesoft.com>, 2000  

TRADUCTION

Thierry Vignaud <tvignaud@mandrakesoft.com>, 2000



 

Index

NOM
SYNOPSIS
DESCRIPTION
VALEUR RENVOYÉE
NOTES
ERREURS
VOIR AUSSI
DISPONIBILITÉ
AUTEUR
TRADUCTION


Time: 21:38:53 GMT, December 19, 2004