[Go to CFHT Home Page] Man Pages
Back to Software Index  BORDER=0Manpage Top Level
    scandir(3B) manual page Table of Contents

Name

scandir, alphasort - scan a directory

Synopsis

/usr/ucb/cc [ flag ... ] file ...


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

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

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

Description

scandir() reads the directory dirname and builds an array of pointers to directory entries using malloc(3C) . The second parameter is a pointer to an array of structure pointers. The third parameter is a pointer to a routine which is called with a pointer to a directory entry and should return a non zero value if the directory entry should be included in the array. If this pointer is NULL , then all the directory entries will be included. The last argument is a pointer to a routine which is passed to qsort(3C) , which sorts the completed array. If this pointer is NULL , the array is not sorted. alphasort() is a routine that sorts the array alphabetically.

scandir() returns the number of entries in the array and a pointer to the array through the parameter namelist.

Return Values

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

See Also

getdents(2) , readdir(3B) , directory(3C) , malloc(3C) , qsort(3C)

Notes

Use of these interfaces should be restricted to only applications written on BSD platforms. Use of these interfaces with any of the system libraries or in multi-thread applications is unsupported.


Table of Contents