xenial (3) getcwd.3.gz

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