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

NOM

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

SYNOPSIS

       #include <sys/param.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 s’est  produite  sur  le  système  de
              fichiers.

       ELOOP  Trop de liens symboliques rencontrés.

       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, ont besoin d’une version privée de cette routine.

VOIR AUSSI

       readlink(2),   canonicalize_file_name(3),    getcwd(3),    pathconf(3),
       sysconf(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         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)