SCANDIR(3)                     Library Routines                     SCANDIR(3)




NAME

       scandir, alphasort - scan a directory


SYNOPSIS

       #include <sys/types.h>
       #include <dirent.h>

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

       int alphasort (const void *d1, const void *d2);

       int alphacasesort (const void *d1, const void *d2);


DESCRIPTION

       The scandir function reads the directory dirname and builds an array of
       pointers to directory entries using malloc(3).  It returns  the  number
       of  entries  in the array.  A pointer to the array of directory entries
       is stored in the location referenced by namelist.

       The select parameter is a pointer to a user supplied  subroutine  which
       is  called by scandir to select which entries are to be included in the
       array.  The select routine is passed a pointer to a directory entry and
       should return a non-zero value if the directory entry is to be included
       in the array.  If select is null, then all the directory  entries  will
       be included.

       The  compar  parameter is a pointer to a user supplied subroutine which
       is passed to qsort(3) to sort the completed array.  If this pointer  is
       null, the array is not sorted.

       The  alphasort  function  is a routine which can be used for the compar
       parameter to sort the array alphabetically.

       The alphacasesort function is similar to alphasort, but can be used for
       sorting in a case-insensitive manner, and is useful for the case-insen-
       sitive filesystems used by GNO.  This function is specific to GNO.

       The memory allocated for the array can be deallocated with free(3),  by
       freeing each pointer in the array and then the array itself.


DIAGNOSTICS

       Returns  -1  if  the  directory cannot be opened for reading or if mal-
       loc(3) cannot allocate enough memory to hold all the data structures.


SEE ALSO

       directory(3), malloc(3), qsort(3), dir(5)


HISTORY

       The scandir and alphasort functions appeared in 4.2BSD.



GNO                             27 January 1997                     SCANDIR(3)

Man(1) output converted with man2html