Provided by: manpages-fr-dev_3.32d0.2p4-1_all bug

NOM

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

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 du standard 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.32 du projet man-pages Linux. Une description
       du projet et des  instructions  pour  signaler  des  anomalies  peuvent  être  trouvées  à
       l'adresse <URL:http://www.kernel.org/doc/man-pages/>.

TRADUCTION

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

       Christophe   Blaess   <URL:http://www.blaess.fr/christophe/>   (1996-2003),  Alain  Portal
       <URL: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> ».