#include <sys/types.h> #include <sys/dirent.h>
int getdents(int fildes, struct dirent buf, size_t nbyte);
getdents attempts to read nbyte bytes from the directory associated with fildes and to format them as file system independent directory entries in the buffer pointed to by buf. Since the file system independent directory entries are of variable length, in most cases the actual number of bytes returned will be strictly less than nbyte. See dirent(4) to calculate the number of bytes.
The file system independent directory entry is specified by the dirent structure. For a description of this see dirent(4).
On devices capable of seeking, getdents starts at a position in the file given by the file pointer associated with fildes. Upon return from getdents, the file pointer is incremented to point to the next directory entry.
This system call was developed in order to implement the readdir routine (for a description, see directory(3C)), and should not be used for other purposes.
In the following conditions, getdents fails and sets errno to: