(BSD System Compatibility)

scandir(3bsd)


scandir, alphasort -- (BSD) scan a directory

Synopsis

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

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

scandir(char *dirname, struct direct **namelist, int (*select)(), int (*compar)());

alphasort(struct direct **d1, struct direct **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) to sort the completed array. If this pointer is NULL, the array is not sorted. alphasort is a routine which will sort 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.

References

directory(3C), getdents(2), malloc(3C), qsort(3C)
© 2004 The SCO Group, Inc. All rights reserved.
UnixWare 7 Release 7.1.4 - 25 April 2004