Provided by: manpages-fr-dev_3.17.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  de  macros  de  test  de  fonctionnalités  pour  la  glibc (voir
   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  pour
       produire  une forme canonique du chemin absolu. Le chemin résultant est
       stocké sous la forme d’une chaîne terminée par un caractère nul pouvant
       contenir   jusqu’à   PATH_MAX   octets,   dans  le  tampon  pointé  par
       resolved_path.  Le  chemin  résultant  ne  traversera  plus  de   liens
       symboliques, et ne contiendra plus d’éléments « /./ » ou « /../ ».

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

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.

       POSIX.1  indique  que  le comportement dans le cas où resolved_path est
       NULL dépend de l’implémentation. POSIX.1-2008 spécifie le  comportement
       décrit  dans  cette page. 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.

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 3.17 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 septembre 2008                   REALPATH(3)