SCANDIR(3) SCANDIR(3) NAME scandir, alphasort - scan a directory SYNOPSIS #include #include 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 subroutine 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 subroutine 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. 4.2 Berkeley Distribution September 17, 1985 SCANDIR(3)