Provided by: manpages-fr-dev_3.65d1p1-1_all bug

NOM

       getcwd, getwd, get_current_dir_name - Obtenir le répertoire de travail actuel

SYNOPSIS

       #include <unistd.h>

       char *getcwd(char *buf, size_t size);

       char *getwd(char *buf);

       char *get_current_dir_name(void);

   Exigences de macros de test de fonctionnalités pour la glibc (consultez feature_test_macros(7)) :

       get_current_dir_name() :
              _GNU_SOURCE

       getwd() :
           Depuis la glibc 2.12 :
               _BSD_SOURCE ||
                   (_XOPEN_SOURCE >= 500 ||
                       _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED) &&
                   !(_POSIX_C_SOURCE >= 200809L || _XOPEN_SOURCE >= 700)
           Avant la glibc 2.12 : _BSD_SOURCE || _XOPEN_SOURCE >= 500 ||
               _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED

DESCRIPTION

       Ces fonctions renvoient une chaîne terminée par une octet nul contenant un chemin absolu correspondant au
       répertoire  de  travail actuel du processus appelant. Le chemin est renvoyé comme résultat de la fonction
       et par le paramètre buf, s'il est présent.

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

       Si  la  taille  du chemin absolu du répertoire de travail en cours, caractère nul de fin compris, dépasse
       size 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.

       Comme  une  extension de la norme POSIX.1-2001, la version Linux (libc4, libc5, glibc) de getcwd() alloue
       le tampon dynamiquement avec malloc(3), si buf est NULL. Dans ce cas, le tampon alloué a la longueur size
       à moins que size soit égal à zéro, auquel cas buf est alloué avec la taille nécessaire.  L'appelant  doit
       libérer avec free(3) le tampon renvoyé.

       get_current_dir_name()  allouera  avec  malloc(3)  une chaîne suffisamment grande pour contenir le nom du
       chemin absolu du répertoire de travail courant. Si la variable d'environnement  PWD  est  configurée,  et
       correcte, cette valeur sera renvoyée. L'appelant doit libérer avec free(3) le tampon renvoyé.

       getwd() n'allouera aucune mémoire (avec malloc(3)). Le paramètre buf doit être un pointeur sur une chaîne
       comportant  au  moins  PATH_MAX  octets. Si la longueur du chemin absolu du répertoire de travail actuel,
       caractère nul de fin compris, dépasse PATH_MAX  octets,  NULL  est  renvoyé  et  errno  prend  la  valeur
       ENAMETOOLONG.  Notez  que  sur  certains  système,  PATH_MAX  peut  ne pas être une constante connue à la
       compilation ; de plus, sa valeur peut dépendre du système de fichiers, voire  être  illimitée,  consultez
       pathconf(3). Pour des raisons de portabilité et de sécurité, l'utilisation de getwd() est déconseillée.

VALEUR RENVOYÉE

       En  cas  de succès, ces fonctions renvoient un pointeur vers une chaîne contenant le chemin du répertoire
       de travail en courant. Dans le cas de getcwd() et getwd() il s'agit de la même valeur que buf.

       En cas d'échec, ces fonctions renvoient NULL, et remplissent errno avec le code d'erreur. Le  contenu  de
       la chaîne pointée par buf est indéfini en cas d'erreur.

ERREURS

       EACCES Impossible de lire ou de parcourir un composant du chemin d'accès.

       EFAULT buf pointe sur une adresse illégale.

       EINVAL L'argument size vaut zéro et buf n'est pas un pointeur NULL.

       EINVAL getwd() : buf est NULL.

       ENAMETOOLONG
              getwd() :  La  taille  de  la chaîne, terminée par un octet nul, du chemin absolu dépasse PATH_MAX
              octets.

       ENOENT Le répertoire en cours a été supprimé.

       ERANGE Le paramètre size est inférieur à la longueur du nom du chemin absolu du  répertoire  de  travail,
              caractère nul de fin compris. Allouez un tampon plus grand et réessayez.

CONFORMITÉ

       getcwd()  se conforme à POSIX.1-2001. Notez cependant que POSIX.1-2001 laisse le comportement de getcwd()
       non spécifié si buf est NULL.

       getwd() est présent dans POSIX.1-2001, mais marquée « LEGACY ». POSIX.1-2008 supprime la spécification de
       getwd() et POSIX.1-2001 ne définit aucune erreur pour getwd(). Utilisez getcwd() à la place.

       get_current_dir_name() est une extension GNU.

NOTES

       Sous Linux, la fonction getcwd() est un appel système (depuis le 2.1.92). Sur des systèmes plus  anciens,
       elle  interrogerait  /proc/self/cwd.  Si l'appel système et le système de fichiers proc sont absents, une
       implémentation générique est utilisée. Dans ce cas seulement la fonction peut renvoyer EACCES sous Linux.

       Ces fonctions sont souvent utilisées pour sauver le répertoire de travail afin  d'y  revenir  plus  tard.
       Ouvrir  le  répertoire  courant  (« . »)  et  appeler  fchdir(2)  pour  y  revenir est habituellement une
       alternative plus rapide et plus fiable (surtout sur d'autres systèmes  que  Linux)  si  l'on  dispose  de
       suffisamment de descripteurs de fichier.

VOIR AUSSI

       chdir(2), fchdir(2), open(2), unlink(2), free(3), malloc(3)

COLOPHON

       Cette page fait partie de la publication 3.65 du projet man-pages Linux. Une description du projet et des
       instructions     pour     signaler     des     anomalies    peuvent    être    trouvées    à    l'adresse
       http://www.kernel.org/doc/man-pages/.

TRADUCTION

       Depuis 2010, cette traduction est maintenue à l'aide de l'outil po4a <http://po4a.alioth.debian.org/> par
       l'équipe de traduction francophone au sein du projet perkamon <http://perkamon.alioth.debian.org/>.

       Christophe      Blaess      <http://www.blaess.fr/christophe/>      (1996-2003),       Alain       Portal
       <http://manpagesfr.free.fr/>  (2003-2006).  Florentin  Duneau  et  l'équipe  francophone de traduction de
       Debian (2006-2009).

       Veuillez signaler toute erreur de traduction en écrivant à <debian-l10n-french@lists.debian.org>  ou  par
       un rapport de bogue sur le paquet manpages-fr.

       Vous pouvez toujours avoir accès à la version anglaise de ce document en utilisant la commande « man -L C
       <section> <page_de_man> ».

GNU                                             20 septembre 2010                                      GETCWD(3)