.\" -*- coding: UTF-8 -*- '\" t .\" Copyright (C) 1993 David Metcalfe (david@prism.demon.co.uk) .\" and Copyright (C) 2008, 2016 Michael Kerrisk .\" .\" SPDX-License-Identifier: Linux-man-pages-copyleft .\" .\" References consulted: .\" Linux libc source code .\" Lewine's _POSIX Programmer's Guide_ (O'Reilly & Associates, 1991) .\" 386BSD man pages .\" Modified Sat Jul 24 16:09:49 1993 by Rik Faith (faith@cs.unc.edu) .\" Modified 11 June 1995 by Andries Brouwer (aeb@cwi.nl) .\" Modified 22 July 1996 by Andries Brouwer (aeb@cwi.nl) .\" 2007-07-30 Ulrich Drepper , mtk: .\" Rework discussion of nonstandard structure fields. .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH readdir 3 "20 juillet 2023" "Pages du manuel de Linux 6.05.01" .SH NOM readdir \- Consulter un rpertoire .SH BIBLIOTHÈQUE Bibliothèque C standard (\fIlibc\fP, \fI\-lc\fP) .SH SYNOPSIS .nf \fB#include \fP .PP \fBstruct dirent *readdir(DIR *\fP\fIdirp\fP\fB);\fP .fi .SH DESCRIPTION La fonction \fBreaddir\fP() renvoie un pointeur sur une structure \fIdirent\fP reprsentant l'entre suivante du flux rpertoire point par \fIdirp\fP. Elle renvoie NULL la fin du rpertoire ou en cas d'erreur. .PP Dans l'implmentation de la glibc, la structure \fIdirent\fP est dfinie comme suit\ : .PP .in +4n .EX struct dirent { ino_t d_ino; /* numro d'inud */ off_t d_off; /* pas une position ; consultez NOTES */ unsigned short d_reclen; /* longueur de cet enregistrement */ unsigned char d_type; /* type du fichier ; pas pris en charge par tous les types de systme de fichiers */ char d_name[256]; /* nom du fichier termin par l'octet NULL */ }; .EE .in .PP Les seuls champs exigs par POSIX.1 pour la structure \fIdirent\fP sont \fId_name\fP et \fId_ino\fP. Les autres champs ne sont pas normaliss et ne sont pas prsents sur tous les systmes; consultez les \fBNOTES\fP ci\-dessous pour plus de dtails. .PP Les champs de la structure \fIdirent\fP sont les suivants: .TP \fId_ino\fP Le numro d'inode du fichier. .TP \fId_off\fP .\" https://lwn.net/Articles/544298/ La valeur renvoye dans \fId_off\fP est celle qui serait renvoye en appelant \fBtelldir\fP(3) la position actuelle dans le flux rpertoire. Soyez conscient que, malgr son type et son nom, le champ \fId_off\fP ne reprsente que rarement une sorte de position de rpertoire sur les systmes de fichiers modernes. Les applications devraient traiter ce champ comme une valeur opaque, sans faire de supposition sur son contenu. Consultez aussi \fBtelldir\fP(3). .TP \fId_reclen\fP La taille (en octets) de l'enregistrement renvoy. Elle peut ne pas correspondre la taille de la dfinition de la structure montre plus haut; voir NOTES. .TP \fId_type\fP Ce champ contient une valeur indiquant le type du fichier, permettant d'viter le cot d'un appel \fBlstat\fP(2) si d'autres actions dpendent du type du fichier. .IP Lorsqu'une macro de test de fonctionnalit est dfinie (\fB_DEFAULT_SOURCE\fP depuis la glibc2.19, ou \fB_BSD_SOURCE\fP pour la glibc2.19 ou antrieure), la glibc dfinit les constantes de macro suivantes pour les valeurs renvoyes dans \fId_type\fP: .RS .TP 12 \fBDT_BLK\fP Il s'agit d'un périphérique bloc. .TP \fBDT_CHR\fP Il s'agit d'un périphérique caractère. .TP \fBDT_DIR\fP Il s'agit d'un répertoire .TP \fBDT_FIFO\fP Il s'agit d'un tube nommé (FIFO). .TP \fBDT_LNK\fP Il s'agit d'un lien symbolique. .TP \fBDT_REG\fP Il s'agit d'un fichier ordinaire. .TP \fBDT_SOCK\fP Il s'agit d'un socket de domaine UNIX. .TP \fBDT_UNKNOWN\fP Le type du fichier n'a pu tre dtermin. .RE .IP .\" kernel 2.6.27 .\" The same sentence is in getdents.2 Actuellement, seuls certains systèmes de fichiers (parmi lesquels Btrfs, ext2, ext3 et ext4) prennent complètement en charge le renvoi du type de fichier dans \fId_type\fP. Toutes les applications doivent gérer correctement une valeur de retour valant \fBDT_UNKNOWN\fP. .TP \fId_name\fP Ce champ contient le nom de fichier termin par l'octet NULL. \fIVoir NOTES\fP. .PP Les donnes renvoyes par \fBreaddir\fP() sont crases lors de l'appel suivant \fBreaddir\fP() sur le mme flux rpertoire. .SH "VALEUR RENVOYÉE" En cas de succs, \fBreaddir\fP() renvoie un pointeur sur une structure \fIdirent\fP (cette structure peut avoir t alloue statiquement; n'essayez pas de la dsallouer avec \fBfree\fP(3)). .PP Lorsque la fin du flux rpertoire est atteinte, NULL est renvoy et \fIerrno\fP n'est pas modifie. En cas d'erreur, NULL est renvoye et \fIerrno\fP contient le code d'erreur. Pour distinguer la fin du flux d'une erreur, il faut assigner \fIerrno\fP zro avant d'appeler \fBreaddir()\fP puis ensuite tester la valeur de \fIerrno\fP si NULL est renvoy. .SH ERREURS .TP \fBEBADF\fP Le descripteur de flux rpertoire \fIdirp\fP n'est pas valable. .SH ATTRIBUTS Pour une explication des termes utilisés dans cette section, consulter \fBattributes\fP(7). .TS allbox; lbx lb lb l l l. Interface Attribut Valeur T{ .na .nh \fBreaddir\fP() T} Sécurité des threads MT\-Unsafe race:dirstream .TE .sp 1 .PP .\" FIXME . .\" http://www.austingroupbugs.net/view.php?id=696 Dans la spcification POSIX.1 courante (POSIX.1\-2008), il n'est pas requis que \fBreaddir\fP(3) soit sr vis\-\-vis des threads. Cependant, dans les implmentations modernes, incluant la glibc, des appels concurrents \fBreaddir\fP(3) pour des flux rpertoire diffrents sont srs vis\-\-vis des threads. Dans le cas o de multiples threads doivent lire depuis un flux de rpertoire identique, l'utilisation de \fBreaddir\fP(3) avec une synchronisation externe est toujours prfrable l'utilisation de \fBreaddir_r\fP(3). Il est attendu quune future version de POSIX.1 demande que \fBreaddir\fP() soit sr vis\-\-vis des threads lorsquil est employ simultanment sur des flux rpertoire diffrents. .SH VERSIONS .\" POSIX.1-2001, POSIX.1-2008 .\" Seuls les champs \fId_name\fP et (comme extension XSI) \fId_ino\fP sont spcifis dans POSIX.1. Ailleurs que sur Linux, le champ \fId_type\fP est principalement disponible sur les systmes BSD. Les autres champs sont disponibles sur beaucoup de systmes, mais pas sur tous. Avec la glibc, les programmes peuvent vrifier la disponibilit des champs non dfinis dans POSIX.1 en testant si les macros \fB_DIRENT_HAVE_D_NAMLEN\fP, \fB_DIRENT_HAVE_D_RECLEN\fP, \fB_DIRENT_HAVE_D_OFF\fP ou \fB_DIRENT_HAVE_D_TYPE\fP sont dfinies. .SS "Le champ d_name" La dfinition de la structure \fIdirent\fP donne ci\-dessus est reprise des en\-ttes de la glibc et montre le champ \fId_name\fP avec une taille fixe. .PP \fIAvertissement\fP: les applications devraient viter tout dpendance sur la taille du champ \fId_name\fP. POSIX la dfinit comme \fIchar\ d_name[]\fP, un tableau de caractres de taille non spcifie, avec au plus \fBNAME_MAX\fP caractres avant l'octet NULL final (\[aq]\e0\[aq]). .PP POSIX.1 est explicite sur le fait que ce champ ne doit pas tre utilis comme une lvalue. La norme ajoute que l'utilisation de \fIsizeof(d_name)\fP est incorrecte; utilisez \fIstrlen(d_name)\fP la place. Sur certains systmes, ce champ est dfini comme \fIchar\~d_name[1]\fP! Cela implique que l'utilisation de \fIsizeof(struct dirent)\fP pour dterminer la taille de l'enregistrement, y compris du champ \fId_name\fP, est galement incorrecte. .PP Notez que bien que l'appel .PP .in +4n .EX fpathconf(fd, _PC_NAME_MAX) .EE .in .PP renvoie la valeur 255 pour la plupart des systmes de fichiers, le nom de fichier termin par l'octet NULL qui est (correctement) renvoy dans \fId_name\fP peut en fait dpasser cette taille sur certains systmes de fichiers (CIFS ou les serveurs Windows SMB par exemple). Dans de tels cas, le champ \fId_reclen\fP contiendra une valeur qui dpasse la taille de la structure \fIdirent\fP de la glibc montre plus haut. .SH STANDARDS POSIX.1\-2008. .SH HISTORIQUE POSIX.1\-2001, SVr4, 4.3BSD. .SH NOTES Un flux rpertoire est ouvert avec \fBopendir\fP(3). .PP L'ordre dans lequel les noms de fichier sont lus par des appels successifs \fBreaddir\fP() dpend de l'implmentation du systme de fichiers; il est peu probable que les noms soient tris d'une quelconque faon. .SH "VOIR AUSSI" \fBgetdents\fP(2), \fBread\fP(2), \fBclosedir\fP(3), \fBdirfd\fP(3), \fBftw\fP(3), \fBoffsetof\fP(3), \fBopendir\fP(3), \fBreaddir_r\fP(3), \fBrewinddir\fP(3), \fBscandir\fP(3), \fBseekdir\fP(3), \fBtelldir\fP(3) .PP .SH TRADUCTION La traduction française de cette page de manuel a été créée par #-#-#-#-# min-002-occurences.po (perkamon) #-#-#-#-#, Christophe Blaess , Stéphan Rafin , Thierry Vignaud , François Micaux, Alain Portal , Jean-Philippe Guérard , Jean-Luc Coulon (f5ibh) , Julien Cristau , Thomas Huriaux , Nicolas François , Florentin Duneau , Simon Paillard , Denis Barbier , David Prévot , Jean-Philippe MENGUAL , Jean-Pierre Giraud , #-#-#-#-# min-003-occurences.po (perkamon) #-#-#-#-#, Christophe Blaess , Stéphan Rafin , Thierry Vignaud , François Micaux, Alain Portal , Jean-Philippe Guérard , Jean-Luc Coulon (f5ibh) , Julien Cristau , Thomas Huriaux , Nicolas François , Florentin Duneau , Simon Paillard , Denis Barbier , David Prévot , Jean-Philippe MENGUAL , Jean-Pierre Giraud , #-#-#-#-# min-004-occurences.po (perkamon) #-#-#-#-#, Christophe Blaess , Stéphan Rafin , Thierry Vignaud , François Micaux, Alain Portal , Jean-Philippe Guérard , Jean-Luc Coulon (f5ibh) , Julien Cristau , Thomas Huriaux , Nicolas François , Florentin Duneau , Simon Paillard , Denis Barbier , David Prévot , Jean-Philippe MENGUAL , Jean-Pierre Giraud , #-#-#-#-# min-010-occurences.po (perkamon) #-#-#-#-#, Christophe Blaess , Stéphan Rafin , Thierry Vignaud , François Micaux, Alain Portal , Jean-Philippe Guérard , Jean-Luc Coulon (f5ibh) , Julien Cristau , Thomas Huriaux , Nicolas François , Florentin Duneau , Simon Paillard , Denis Barbier , David Prévot , Thomas Vincent , #-#-#-#-# min-020-occurences.po (perkamon) #-#-#-#-#, Christophe Blaess , Stéphan Rafin , Thierry Vignaud , François Micaux, Alain Portal , Jean-Philippe Guérard , Jean-Luc Coulon (f5ibh) , Julien Cristau , Thomas Huriaux , Nicolas François , Florentin Duneau , Simon Paillard , Denis Barbier , David Prévot , Jean-Philippe MENGUAL , Jean-Pierre Giraud , #-#-#-#-# min-100-occurences.po (perkamon) #-#-#-#-#, Christophe Blaess , Stéphan Rafin , Thierry Vignaud , François Micaux, Alain Portal , Jean-Philippe Guérard , Jean-Luc Coulon (f5ibh) , Julien Cristau , Thomas Huriaux , Nicolas François , Florentin Duneau , Simon Paillard , Denis Barbier , David Prévot , Jean-Philippe MENGUAL , Jean-Pierre Giraud et # . .PP Cette traduction est une documentation libre ; veuillez vous reporter à la .UR https://www.gnu.org/licenses/gpl-3.0.html GNU General Public License version 3 .UE concernant les conditions de copie et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE. .PP Si vous découvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message à .MT debian-l10n-french@lists.debian.org .ME .