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

NOM

       realpath - Renvoie le chemin d’accès absolu.

SYNOPSIS

       #include <limits.h>
       #include <stdlib.h>

       char *realpath(const char *path, char *resolved_path);

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

       realpath() : _BSD_SOURCE || _XOPEN_SOURCE >= 500

DESCRIPTION

       realpath développe tous les liens symboliques, et résout les références
       à « /./ », « /../ » ainsi que les caractères « / » supplémentaires dans
       la chaîne, terminée par un caractère nul, pointée par path et stocke le
       résultat dans le tampon de taille PATH_MAX pointé par resolved_path. Le
       chemin résultant  ne  traversera  plus  de  liens  symboliques,  et  ne
       contiendra plus d’éléments « /./ » ou « /../ ».

VALEUR RENVOYÉE

       S’il   n’y   a   pas  d’erreur,  realpath()  renvoie  un  pointeur  sur
       resolved_path.

       Sinon elle renvoie NULL, et  le  contenu  de  resolved_path  n’est  pas
       défini. La variable globale errno contient le code d’erreur.

ERREURS

       EACCES La permission de recherche ou de lecture n’est pas accordée pour
              un composant du chemin d’accès.

       EINVAL Soit path, soit resolved_path est  NULL  (dans  la  libc5,  cela
              déclenchait une erreur de segmentation). Mais voir quand même la
              section NOTES ci-dessous.

       EIO    Une erreur d’entrée-sortie est survenue lors de la  lecture  sur
              le système de fichiers.

       ELOOP  Trop  de  liens  symboliques ont été rencontrés en parcourant le
              chemin.

       ENAMETOOLONG
              Un élément du chemin  d’accès  dépasse  NAME_MAX  caractères  de
              long,  ou le chemin d’accès complet dépasse PATH_MAX caractères.

       ENOENT Le fichier indiqué n’existe pas.

       ENOTDIR
              Un élément du chemin d’accès n’est pas un répertoire.

VERSIONS

       Sous Linux, cette fonction est apparue dans la libc 4.5.21.

CONFORMITÉ

       BSD 4.4, POSIX.1-2001.

       Dans BSD 4.4 et Solaris la limite de longueur du chemin est  MAXPATHLEN
       (dans  <sys/param.h>).  SUSv2  conseille  PATH_MAX  et  NAME_MAX,  dans
       <limits.h> ou fournis par pathconf(3).  Un  fragment  de  code  typique
       serait

           #ifdef PATH_MAX
             path_max = PATH_MAX;
           #else
             path_max = pathconf(path, _PC_PATH_MAX);
             if (path_max <= 0)
               path_max = 4096;
           #endif

       (Mais voir quand même la section BOGUES).

       Les  versions  BSD 4.4,  Linux  et  SUSv2  renvoient toujours un chemin
       absolu. Solaris peut renvoyer un chemin relatif si l’argument path  est
       relatif.  Le prototype de realpath() est donné dans <unistd.h> dans les
       libc4 et libc5, mais dans <stdlib.h> partout ailleurs.

NOTES

       L’implémentation de realpath() de la glibc fournit  une  extension  non
       standard. Si resolved_path est NULL, alors realpath() utilise malloc(3)
       pour allouer un tampon allant jusqu’à PATH_MAX octets pour contenir  le
       chemin  trouvé, et retourner un pointeur sur ce tampon. L’appelant doit
       libérer ce tampon avec free(3).

BOGUES

       N’utilisez jamais cette fonction. Sa conception est  erronée  (à  moins
       d’utiliser  la  caractéristique non standard resolved_path == NULL) car
       elle ne permet pas de connaître la taille nécessaire pour le tampon  de
       sortie  resolved_path.  D’après  POSIX,  un  tampon  de taille PATH_MAX
       suffit, mais PATH_MAX n’est pas nécessairement une constante définie et
       peut  être  obtenue  avec pathconf(3). En outre, interroger pathconf(3)
       n’aide pas vraiment, car d’une part POSIX prévient que les résultats de
       pathconf(3)  peuvent  être  immenses et inappropriés pour allouer de la
       mémoire et d’autre part pathconf(3)  peut  renvoyer  -1  indiquant  que
       PATH_MAX est illimité.

       Les  implémentations dans les libc4 et libc5 contenaient un débordement
       de tampon (corrigé dans la libc-5.4.13). Ainsi, les programmes Set-UID,
       comme mount(8), ont besoin d’une version privée de cette routine.

VOIR AUSSI

       readlink(2),    canonicalize_file_name(3),    getcwd(3),   pathconf(3),
       sysconf(3)

COLOPHON

       Cette page fait partie de  la  publication  2.80  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

       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         Nicolas         François
       <nicolas.francois@centraliens.net>   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> ».

                                26 juillet 2007                    REALPATH(3)