NAME
sa_scandirat, sa_scandir - scan a directory to fill a stralloc
SYNOPSIS
#include <fcntl.h> /* AT_FDCWD */ #include <limb/direntry.h>
typedef ssize_t (*sa_scande) (stralloc *sa, direntry *de, int dirfd, void *ctx) int sa_scandirat(stralloc *sa, int dirfd, const char *name, sa_scande fn, void *ctx) int sa_scandir(stralloc *sa, const char *name, sa_scande fn, void *ctx)
DESCRIPTION
The sa_scandirat() function scans the directory name calling the function
fn on each of its directory entry, save for . and .. which are ignored.
Said function shall add relevant information regarding the directory entry
pointed by de into the stralloc pointed by sa and return 1 on success. It
can also return 0 if nothing was added, e.g. the file/entry was simply ignored.
In case of failure it must return -1 and set errno to indicate the error.
If name describes a relative path, it is relative to the directory associated
with the file descriptor dirfd, which may be AT_FDCWD to use the current
working directory.
The sa_scandir() macro is similar, except when name describes a relative
path, in which case it is relative to the current working directory.
RETURN VALUE
These functions returns the number of entries for which data was added into sa
on success. Otherwise it returns -1 and sets errno to indicate the error.
ERRORS
These functions may fail and set errno for the error described for
opendirat(3), readdir(3), as well as those set by the function fn.