Provided by: manpages-fr-dev_2.64.1-1_all bug

NOM

       getcwd, getwd, get_current_dir_name - Get current working directory

SYNOPSIS

       #include <unistd.h>

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

       char *getwd(char *buf);

       char *get_current_dir_name(void);

   Feature Test Macro Requirements for glibc (see feature_test_macros(7)):

       getcwd(): _BSD_SOURCE || _XOPEN_SOURCE >= 500
       get_current_dir_name(): _GNU_SOURCE

DESCRIPTION

       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  le  chemin du répertoire en cours nécessite un tampon plus long que
       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.

       Si buf est NULL, le comportement de getcwd() est indéfini.

       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 lors de l’appel.  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.  Il  est  possible  (et  même
       fortement  conseillé) de libérer le tampon avec free(3) lorsqu’il a été
       obtenu ainsi.

       get_current_dir_name() allouera avec malloc(3) une chaîne  suffisamment
       grande   pour   contenir   le   nom   du  répertoire.  Si  la  variable
       d’environnement PWD est configurée,  et  correcte,  cette  valeur  sera
       renvoyée.

       getwd() n’allouera aucune mémoire. L’argument buf doit être un pointeur
       sur une chaîne comportant au moins PATH_MAX octets. getwd() ne renverra
       que  les  PATH_MAX  premiers octets du chemin. Notez que PATH_MAX n’est
       pas nécessairement une constante à la compilation. Elle  peut  dépendre
       du  système  de  fichiers,  voire  être  illimitée. Pour des raisons de
       portabilité et de sécurité, l’utilisation de getwd() est  déconseillée.

VALEUR RENVOYÉE

       NULL  en  cas d’échec, avec errno contenant le code d’erreur. En cas de
       réussite buf est renvoyé. 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.

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

       ERANGE L’argument  size  est  inférieur  à  la  longueur  du   nom   du
              répertoire. Allouez un tampon plus grand et ré-essayez.

CONFORMITÉ À

       getcwd()  est  conforme  à  POSIX.1-2001.  getwd()  est disponible sous
       POSIX.1-2001 mais elle est marquée  « LEGACY ».  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 fichiers.

VOIR AUSSI

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

TRADUCTION

       Cette page de manuel a été traduite  et  mise  à  jour  par  Christophe
       Blaess  <http://www.blaess.fr/christophe/> entre 1996 et 2003, puis par
       Alain Portal <aportal AT univ-montp2 DOT fr> jusqu’en 2006, et  mise  à
       disposition sur http://manpagesfr.free.fr/.

       Les mises à jour et corrections de la version présente dans Debian sont
       directement gérées par Florentin Duneau <fduneau@gmail.com> et l’équipe
       francophone de traduction de Debian.

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