Provided by: manpages-fr-dev_3.27fr1.4-1_all bug

NOM

       scandir,  alphasort,  versionsort  -  Selectionner  des  elements  d'un
       repertoire

SYNOPSIS

       #include <dirent.h>

       int scandir(const char *dirp, struct dirent ***namelist,
              int (*filter)(const struct dirent *),
              int (*compar)(const struct dirent **, const struct dirent **));

       int alphasort(const void *a, const void *b);

       int versionsort(const void *a, const void *b);

   Exigences de macros de test de fonctionnalites  pour  la  glibc  (consultez
   feature_test_macros(7)) :

       scandir(), alphasort() : _BSD_SOURCE || _SVID_SOURCE
       versionsort() : _GNU_SOURCE

DESCRIPTION

       La  fonction scandir() examine le repertoire dirp, en appelant filter()
       pour chaque element rencontre. Les  entrees  pour  lesquelles  filter()
       renvoie  une valeur non nulle sont stockees dans une table allouee avec
       malloc(3), triee avec qsort(3) en utilisant la fonction de  comparaison
       compar(),   puis  regroupees  dans  une  table  namelist  allouee  avec
       malloc(3). Si filter est NULL, toutes les entrees sont selectionnees.

       Les fonctions alphasort() et versionsort() peuvent etre utilisees comme
       fonction  de  comparaison  compar.  La  premiere  trie  les  entrees du
       repertoire en ordre alphabetique en utilisant strcoll(3), la seconde en
       utilisant strverscmp(3) sur les chaines (*a)->d_name et (*b)->d_name.

VALEUR RENVOY'EE

       La  fonction  scandir()  renvoie  le  nombre  d'entrees  de  repertoire
       selectionnees ou -1 en cas d'erreur.

       Les fonctions alphasort() et versionsort() renvoient un entier negatif,
       nul,  ou  positif  si le premier argument est respectivement inferieur,
       egal ou superieur au second.

ERREURS

       ENOMEM Pas assez de memoire pour terminer l'operation.

VERSIONS

       versionsort() a ete ajoutee a la glibc dans la version 2.1.

CONFORMIT'E

       alphasort() et scandir() sont  specifiees  dans  POSIX.1-2008  et  sont
       disponibles largement. versionsort() est une extension GNU.

       Les  fonctions  scandir() et alphasort() proviennent de BSD 4.3 et sont
       disponibles sous Linux depuis libc4. Les bibliotheques libc4  et  libc5
       utilisent le prototype plus precis

           int alphasort(const struct dirent ** a,
                         const struct dirent **b);

       mais la glibc 2.0 est revenue au prototype BSD imprecis.

       La  fonction  versionsort() est une extension GNU, disponible depuis la
       glibc 2.1.

       Depuis la glibc 2.1, la fonction alphasort() invoque  strcoll(3).  Dans
       les versions precedentes, elle appelait strcmp(3).

EXEMPLE

       #define _SVID_SOURCE
       /* Afficher le contenu du repertoire en ordre inverse */
       #include <dirent.h>

       int
       main(void)
       {
           struct dirent **namelist;
           int n;

           n = scandir(".", &namelist, 0, alphasort);
           if (n < 0)
               perror("scandir");
           else {
               while (n--) {
                   printf("%s\n", namelist[n]->d_name);
                   free (namelist [n]);
               }
               free (namelist);
           }
       }

VOIR AUSSI

       closedir(3),    fnmatch(3),   opendir(3),   readdir(3),   rewinddir(3),
       seekdir(3), strcmp(3), strcoll(3), strverscmp(3), telldir(3)

COLOPHON

       Cette page fait partie de  la  publication  3.27  du  projet  man-pages
       Linux.  Une description du projet et des instructions pour signaler des
       anomalies      peuvent      etre       trouvees       a       l'adresse
       <URL:http://www.kernel.org/doc/man-pages/>.

TRADUCTION

       Depuis  2010,  cette  traduction est maintenue a l'aide de l'outil po4a
       <URL:http://po4a.alioth.debian.org/>   par   l'equipe   de   traduction
       francophone        au        sein        du       projet       perkamon
       <URL:http://perkamon.alioth.debian.org/>.

       Christophe Blaess  <URL:http://www.blaess.fr/christophe/>  (1996-2003),
       Alain  Portal  <URL:http://manpagesfr.free.fr/>  (2003-2006).   Nicolas
       Francois et l'equipe francophone de traduction de Debian (2006-2009).

       Veuillez  signaler  toute  erreur   de   traduction   en   ecrivant   a
       <debian-l10n-french@lists.debian.org> ou par un rapport de bogue sur le
       paquet manpages-fr.

       Vous pouvez toujours avoir acces a la version anglaise de  ce  document
       en utilisant la commande << man -L C <section> <page_de_man> >>.

GNU                             10 fevrier 2009                     SCANDIR(3)