SCANDIR(3-BSD) RISC/os Reference Manual SCANDIR(3-BSD)
NAME
scandir, alphasort - scan a directory
SYNOPSIS
For -systype svr3 , -systype svr4 and -systype bsd43:
#include <bsd/sys/types.h>
#include <sys/stat.h>
#ifdef mips
#include <bsd/sys/dir.h>
#else
#include <ndir.h>
scandir(dirname, namelist, select, compar)
char *dirname;
struct direct *(*namelist[]);
int (*select)(), int (*compar)();
alphasort(d1, d2)
struct direct **d1, **d2;
DESCRIPTION
scandir 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 and a pointer to the
array through namelist.
The select parameter is a pointer to a user supplied subrou-
tine 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 subrou-
tine which is passed to qsort(3) to sort the completed
array. If this pointer is null, the array is not sorted.
alphasort is a routine which can be used for the compar
parameter to sort the array alphabetically.
The memory allocated for the array can be deallocated with
free (see malloc(3)) by freeing each pointer in the array
and the array itself.
SEE ALSO
directory(3), malloc(3), qsort(3).
DIAGNOSTICS
Returns -1 if the directory cannot be opened for reading or
if malloc(3) cannot allocate enough memory to hold all the
data structures.
Printed 11/19/92 Page 1
SCANDIR(3-BSD) RISC/os Reference Manual SCANDIR(3-BSD)
ORIGINS
BSD 4.3
NOTE
When these routines are used in a program which is compiled
in -systype svr3, or -systype svr4 they are not resolved by
libc. See intro(3) for more information.
Page 2 Printed 11/19/92