readdir_r(3) Library Functions Manual readdir_r(3) NOM readdir_r - Consulter un repertoire BIBLIOTHEQUE Bibliotheque C standard (libc, -lc) SYNOPSIS #include [[obsolete]] int readdir_r(DIR *restrict dirp, struct dirent *restrict entry, struct dirent **restrict result); Exigences de macros de test de fonctionnalites pour la glibc (consulter feature_test_macros(7)) : readdir_r() : _POSIX_C_SOURCE || /* glibc <= 2.19 : */ _BSD_SOURCE || _SVID_SOURCE DESCRIPTION Cette fonction est obsolete; utilisez readdir(3) a la place. La fonction readdir_r() est la version reentrante de readdir(3). Elle lit la prochaine entre de repertoire partir du flux repertoire dirp et la renvoie dans le tampon de l'appelant pointe par entry. Pour des details sur la structure dirent, consultez readdir(3). Un pointeur vers le tampon renvoye est place dans *result ; si la fin du flux de repertoire est rencontree, NULL est renvoye dans *result. Il est recommande que les applications utilisent readdir(3) a la place de readdir_r(). De plus, depuis la glibc 2.24, la glibc rend readdir_r() obsolete pour les raisons suivantes : - Pour les systmes sur lesquels NAME_MAX n'est pas defini, appeler readdir_r() peut etre non sur parce que l'interface ne permet pas l'appelant de fournir la longueur du tampon utilise pour l'entree de repertoire renvoyee. - Sur certains systemes, readdir_r() ne peut pas lire les entres de repertoire dont le nom est tres long. Lorsque l'implementation de la glibc rencontre un tel nom, readdir_r() echoue avec l'erreur ENAMETOOLONG apres que la derniere entree du repertoire ait ete lue. Sur d'autres systemes, readdir_r() peut renvoyer un etat de reussite mais le champ d_name renvoye peut ne pas etre termine par l'octet NULL ou peut etre tronque. - Dans la specification POSIX.1 actuelle (POSIX.1-2008), il n'est pas requis que readdir(3) soit sur vis-a-vis des threads. Cependant, dans les implementations modernes, incluant la glibc, des appels concurrents a readdir(3) pour des flux repertoire diffrents sont surs vis-a-vis des threads. Par consequent, l'utilisation de readdir_r() n'est generalement pas necessaire dans les programmes multi-threades. Dans le cas ou de multiples threads doivent lire depuis un flux repertoire identique, l'utilisation de readdir(3) avec une synchronisation externe est toujours preferable a l'utilisation de readdir_r() pour les raisons citees dans le point ci-dessus. - Il est attendu qu'une future version de POSIX.1 rende readdir_r() obsolete et requiere que readdir(3) soit sure du point de vue des threads lorsqu'elle est employee de facon simultanee sur des flux repertoire differents. VALEUR RENVOYEE La fonction readdir_r() renvoie 0 si elle reussit. Si elle echoue, elle renvoie un code d'erreur positif (documente dans ERREURS). Si la fin du flux repertoire est atteinte, readdir_r() renvoie 0 et renvoie NULL dans *result. ERREURS EBADF Le descripteur de flux repertoire dirp n'est pas valable. ENAMETOOLONG Une entree de repertoire dont le nom est trop long pour etre lu a ete rencontree. ATTRIBUTS Pour une explication des termes utilises dans cette section, consulter attributes(7). +---------------------------------+--------------------------+---------+ |Interface | Attribut | Valeur | +---------------------------------+--------------------------+---------+ |readdir_r() | Securite des threads | MT-Safe | +---------------------------------+--------------------------+---------+ STANDARDS POSIX.1-2008. HISTORIQUE POSIX.1-2001. VOIR AUSSI readdir(3) TRADUCTION La traduction francaise de cette page de manuel a ete creee par Christophe Blaess , Stephan Rafin , Thierry Vignaud , Francois Micaux, Alain Portal , Jean-Philippe Guerard , Jean-Luc Coulon (f5ibh) , Julien Cristau , Thomas Huriaux , Nicolas Francois , Florentin Duneau , Simon Paillard , Denis Barbier , David Prevot et Gregoire Scano Cette traduction est une documentation libre ; veuillez vous reporter a la GNU General Public License version 3 concernant les conditions de copie et de distribution. Il n'y a aucune RESPONSABILITE LEGALE. Si vous decouvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message a . Pages du manuel de Linux 6.12 23 juillet 2024 readdir_r(3)