Man page - readdir_r(3)

Packages contains this manual

Available languages:

en fr ja ru ro

Manual

readdir_r

NOM
BIBLIOTHÈQUE
SYNOPSIS
DESCRIPTION
VALEUR RENVOYÉE
ERREURS
ATTRIBUTS
STANDARDS
HISTORIQUE
VOIR AUSSI
TRADUCTION

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 entre 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 readdir_r () obsolÚte pour les raisons suivantes :

-

Pour les systmes sur lesquels NAME_MAX n’est pas dĂ©fini, 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 entres 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 ENAMETOOLONG 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 actuelle (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 diffrents sont sĂ»rs vis-Ă -vis des threads. Par consĂ©quent, l’utilisation de readdir_r () n’est gĂ©nĂ©ralement pas nĂ©cessaire dans les programmes multi-threadĂ©s. Dans le cas oĂč de multiples threads doivent lire depuis 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).

Image grohtml-3881521-1.png

STANDARDS

POSIX.1-2008.

HISTORIQUE

POSIX.1-2001.

VOIR AUSSI

readdir (3)

TRADUCTION

La traduction française de cette page de manuel a été créée par Christophe Blaess <https://www.blaess.fr/christophe/>, Stéphan Rafin <stephan.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.coulon@wanadoo.fr>, Julien Cristau <jcristau@debian.org>, Thomas Huriaux <thomas.huriaux@gmail.com>, Nicolas François <nicolas.francois@centraliens.net>, Florentin Duneau <fduneau@gmail.com>, Simon Paillard <simon.paillard@resel.enst-bretagne.fr>, Denis Barbier <barbier@debian.org>, David Prévot <david@tilapin.org> et Grégoire Scano <gregoire.scano@malloc.fr>

Cette traduction est une documentation libre ; veuillez vous reporter à la GNU General Public License version 3 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 .