#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 the file descriptor 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 function was developed in order to implement the readdir routine (for a description, see directory(3C) ), and should not be used for other purposes.
getdents() will fail if one or more of the following are true: