SCANDIR(3) 1990 SCANDIR(3) NNAAMMEE scandir, alphasort - scan a directory SSYYNNOOPPSSIISS ##iinncclluuddee <<ssyyss//ttyyppeess..hh>> ##iinncclluuddee <<ddiirreenntt..hh>> ssccaannddiirr((ddiirrnnaammee,, nnaammeelliisstt,, sseelleecctt,, ccoommppaarr)) cchhaarr **ddiirrnnaammee;; ssttrruucctt ddiirreecctt ******nnaammeelliisstt;; iinntt ((**sseelleecctt))(());; iinntt ((**ccoommppaarr))(());; aallpphhaassoorrtt((dd11,, dd22)) vvooiidd **dd11,, **dd22;; DDEESSCCRRIIPPTTIIOONN _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. A pointer to the array of directory entries is stored in the location referenced by _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(3), by freeing each pointer in the array and then the array itself. SSEEEE AALLSSOO directory(3), malloc(3), qsort(3), dir(5) DDIIAAGGNNOOSSTTIICCSS 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 7/27/90 June 1