Provided by: manpages-fr-dev_3.32d0.2p4-1_all bug

NOM

       scandir,  alphasort,  versionsort  -  Sélectionner  des  éléments  d'un
       répertoire

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 fonctionnalités  pour  la  glibc  (consultez
   feature_test_macros(7)) :

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

DESCRIPTION

       La  fonction scandir() examine le répertoire dirp, en appelant filter()
       pour chaque élément rencontré. Les  entrées  pour  lesquelles  filter()
       renvoie  une valeur non nulle sont stockées dans une table allouée avec
       malloc(3), triée avec qsort(3) en utilisant la fonction de  comparaison
       compar(),   puis  regroupées  dans  une  table  namelist  allouée  avec
       malloc(3). Si filter est NULL, toutes les entrées sont sélectionnées.

       Les fonctions alphasort() et versionsort() peuvent être utilisées comme
       fonction  de  comparaison  compar.  La  première  trie  les  entrées du
       répertoire en ordre alphabétique en utilisant strcoll(3), la seconde en
       utilisant strverscmp(3) sur les chaînes (*a)->d_name et (*b)->d_name.

VALEUR RENVOYÉE

       La  fonction  scandir()  renvoie  le  nombre  d'entrées  de  répertoire
       sélectionnées ou -1 en cas d'erreur.

       Les fonctions alphasort() et versionsort() renvoient un entier négatif,
       nul,  ou  positif  si le premier argument est respectivement inférieur,
       égal ou supérieur au second.

ERREURS

       ENOMEM Pas assez de mémoire pour terminer l'opération.

VERSIONS

       versionsort() a été ajoutée à la glibc dans la version 2.1.

CONFORMITÉ

       alphasort() et scandir() sont  spécifiées  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 bibliothèques libc4  et  libc5
       utilisent le prototype plus précis

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

       mais la glibc 2.0 est revenue au prototype BSD imprécis.

       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 précédentes, elle appelait strcmp(3).

EXEMPLE

       #define _SVID_SOURCE
       /* Afficher le contenu du répertoire 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.32  du  projet  man-pages
       Linux.  Une description du projet et des instructions pour signaler des
       anomalies      peuvent      être       trouvées       à       l'adresse
       <URL:http://www.kernel.org/doc/man-pages/>.

TRADUCTION

       Depuis  2010,  cette  traduction est maintenue à l'aide de l'outil po4a
       <URL:http://po4a.alioth.debian.org/>   par   l'équipe   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
       François et l'équipe francophone de traduction de Debian (2006-2009).

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

       Vous pouvez toujours avoir accès à la version anglaise de  ce  document
       en utilisant la commande « man -L C <section> <page_de_man> ».