4.3BSD-Reno/share/man/cat3/scandir.0
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