Amiga Unix — 68040 · 68060

Manual pages › BSD C library (3B)

scandir(3B)

scan a directory

From the original Amiga UNIX 2.1 manual. Some things it mentions may not be in this release.

NAME

scandir, alphasort - scan a directory

SYNOPSIS

cc [ flag... ] file ... -lucb
#include <sys/types.h>
#include <sys/dir.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(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.

SEE ALSO

getdents(2), directory(3C),  malloc(3C),  qsort(3C)  in  the
Programmer's Reference Manual.

RETURN VALUE

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