4.3BSD-UWisc/man/cat3/scandir.3

Compare this file to the similar file:
Show the results in this format:




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



NAME
     scandir, alphasort - scan a directory

SYNOPSIS
     #include <sys/types.h>
     #include <sys/dir.h>

     scandir(dirname, namelist, select, compar)
     char *dirname;
     struct direct *(*namelist[]);
     int (*select)();
     int (*compar)();

     alphasort(d1, d2)
     struct direct **d1, **d2;

DESCRIPTION
     _S_c_a_n_d_i_r reads the directory _d_i_r_n_a_m_e and builds an array of
     pointers to directory entries using _m_a_l_l_o_c(3).  It returns
     the number of entries in the array and a pointer to the
     array through _n_a_m_e_l_i_s_t.

     The _s_e_l_e_c_t parameter is a pointer to a user supplied subrou-
     tine which is called by _s_c_a_n_d_i_r 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 _s_e_l_e_c_t is null, then all the directory entries will be
     included.

     The _c_o_m_p_a_r parameter is a pointer to a user supplied subrou-
     tine which is passed to _q_s_o_r_t(3) to sort the completed
     array. If this pointer is null, the array is not sorted.
     _A_l_p_h_a_s_o_r_t is a routine which can be used for the _c_o_m_p_a_r
     parameter to sort the array alphabetically.

     The memory allocated for the array can be deallocated with
     _f_r_e_e (see _m_a_l_l_o_c(3)) by freeing each pointer in the array
     and the array itself.

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

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








Printed 12/27/86       September 17, 1985                       1