SCANDIR(3)          Linux Programmer's Manual          SCANDIR(3)

NAME
       scandir, alphasort - scan a directory for matching entries

SYNOPSIS
       #include <dirent.h>

       int scandir(const char *dir, struct dirent ***namelist,
              int (*select)(const struct dirent *),
              int (*compar)(const struct dirent **, const struct dirent **));

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

DESCRIPTION
       The scandir() function scans the  directory  dir,  calling
       select()  on  each  directory  entry.   Entries  for which
       select() returns non-zero are stored in strings  allocated
       via  malloc(),  sorted  using  qsort() with the comparison
       function compar(), and collected in array  namelist  which
       is allocated via malloc().  If select is NULL, all entries
       are selected.

       The alphasort() function can be  used  as  the  comparison
       function  for the scandir() function to sort the directory
       entries into alphabetical order.  Its parameters  are  the
       two directory entries, a and b, to compare.

RETURN VALUE
       The  scandir()  function  returns  the number of directory
       entries selected or -1 if an error occurs.

       The alphasort() function returns  an  integer  less  than,
       equal  to,  or  greater than zero if the first argument is
       considered to be respectively  less  than,  equal  to,  or
       greater than the second.

ERRORS
       ENOMEM Insufficient memory to complete the operation.

CONFORMING TO
       BSD 4.3

EXAMPLE
       /* print files in current directory in reverse order */
       #include <dirent.h>
       main(){
           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);
       }

SEE ALSO
       opendir(3),    readdir(3),    closedir(3),   rewinddir(3),
       telldir(3), seekdir(3).

GNU                       11 April 1996                         1