dwww Home | Manual pages | Find package

readdir_r(3)               Library Functions Manual               readdir_r(3)

NOM
       readdir_r - Consulter un répertoire

BIBLIOTHÈQUE
       Bibliothèque C standard (libc, -lc)

SYNOPSIS
       #include <dirent.h>

       [[obsolète]] int readdir_r(DIR *restrict dirp,
                                  struct dirent *restrict entry,
                                  struct dirent **restrict result);

   Exigences  de  macros  de  test de fonctionnalités pour la glibc (consulter
   feature_test_macros(7)) :

       readdir_r() :
           _POSIX_C_SOURCE
               || /* glibc <= 2.19 : */ _BSD_SOURCE || _SVID_SOURCE

DESCRIPTION
       Cette fonction est obsolète ; utilisez readdir(3) à la place.

       La fonction readdir_r() est la version réentrante de  readdir(3).  Elle
       lit  la prochaine entrée de répertoire à partir du flux répertoire dirp
       et la renvoie dans le tampon de l'appelant pointé par entry.  Pour  des
       détails sur la structure dirent, consultez readdir(3).

       Un  pointeur  vers le tampon renvoyé est placé dans *result ; si la fin
       du flux de répertoire est rencontrée, NULL est renvoyé dans *result.

       Il est recommandé que les applications utilisent readdir(3) à la  place
       de  readdir_r().  De  plus,  depuis  la glibc 2.24, la glibc rend read-
       dir_r() obsolète pour les raisons suivantes :

       •  Pour les systèmes sur lesquels NAME_MAX n'est pas  définit,  appeler
          readdir_r()  peut être non sûr parce que l'interface ne permet pas à
          l'appelant de fournir la longueur du tampon utilisé pour l'entrée de
          répertoire renvoyée.

       •  Sur  certains  systèmes, readdir_r() ne peut pas lire les entrées de
          répertoire dont le nom est très long. Lorsque l'implémentation de la
          glibc  rencontre un tel nom, readdir_r() échoue avec l'erreur ENAME-
          TOOLONG après que la dernière entrée du répertoire ait été lue.  Sur
          d'autres  systèmes,  readdir_r()  peut  renvoyer un état de réussite
          mais le champ d_name renvoyé peut ne pas être  terminé  par  l'octet
          NULL ou peut être tronqué.

       •  Dans  la spécification POSIX.1 courante (POSIX.1-2008), il n'est pas
          requis que readdir(3) soit sûr  vis-à-vis  des  threads.  Cependant,
          dans  les  implémentations  modernes,  incluant la glibc, des appels
          concurrents à readdir(3) pour des flux  répertoire  différents  sont
          sûrs  vis-à-vis  des threads. Par conséquent, l'utilisation de read-
          dir_r()  n'est  généralement  pas  nécessaire  dans  les  programmes
          multi-threadés. Dans le cas où de multiples threads doivent lire de-
          puis un flux répertoire identique, l'utilisation de readdir(3)  avec
          une  synchronisation externe est toujours préférable à l'utilisation
          de readdir_r() pour les raisons citées dans le point ci-dessus.

       •  Il est attendu qu'une future version de  POSIX.1  rende  readdir_r()
          obsolète  et  requière  que readdir(3) soit sûre du point de vue des
          threads lorsqu'elle est employée de façon simultanée  sur  des  flux
          répertoire différents.

VALEUR RENVOYÉE
       La fonction readdir_r() renvoie 0 si elle réussit. Si elle échoue, elle
       renvoie un code d'erreur positif (documenté dans ERREURS). Si la fin du
       flux  répertoire  est  atteinte,  readdir_r() renvoie 0 et renvoie NULL
       dans *result.

ERREURS
       EBADF  Le descripteur de flux répertoire dirp n'est pas valable.

       ENAMETOOLONG
              Une entrée de répertoire dont le nom est trop long pour être  lu
              a été rencontrée.

ATTRIBUTS
       Pour  une explication des termes utilisés dans cette section, consulter
       attributes(7).

       ┌─────────────────────────────────────┬──────────────────────┬─────────┐
       │InterfaceAttributValeur  │
       ├─────────────────────────────────────┼──────────────────────┼─────────┤
       │readdir_r()                          │ Sécurité des threads │ MT-Safe │
       └─────────────────────────────────────┴──────────────────────┴─────────┘

STANDARDS
       POSIX.1-2001, POSIX.1-2008.

VOIR AUSSI
       readdir(3)

TRADUCTION
       La traduction française de cette page de manuel a été créée par  Chris-
       tophe  Blaess  <https://www.blaess.fr/christophe/>, Stéphan Rafin <ste-
       phan.rafin@laposte.net>, Thierry Vignaud <tvignaud@mandriva.com>, Fran-
       çois  Micaux, Alain Portal <aportal@univ-montp2.fr>, Jean-Philippe Gué-
       rard <fevrier@tigreraye.org>, Jean-Luc  Coulon  (f5ibh)  <jean-luc.cou-
       lon@wanadoo.fr>,  Julien  Cristau <jcristau@debian.org>, Thomas Huriaux
       <thomas.huriaux@gmail.com>, Nicolas François  <nicolas.francois@centra-
       liens.net>,  Florentin  Duneau <fduneau@gmail.com>, Simon Paillard <si-
       mon.paillard@resel.enst-bretagne.fr>,   Denis   Barbier    <barbier@de-
       bian.org>,  David  Prévot  <david@tilapin.org>  et Grégoire Scano <gre-
       goire.scano@malloc.fr>

       Cette traduction est une documentation libre ; veuillez vous reporter à
       la        GNU        General       Public       License       version 3
       ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩ concernant  les  conditions
       de copie et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE.

       Si  vous découvrez un bogue dans la traduction de cette page de manuel,
       veuillez envoyer un message à ⟨debian-l10n-french@lists.debian.org⟩.

Pages du manuel de Linux 6.03   5 février 2023                    readdir_r(3)

Generated by dwww version 1.15 on Sat Jun 29 01:50:10 CEST 2024.