#define _BSD_SOURCE or #define _SVID_SOURCE
"ssize_t getdirentries(int "fd", char *"buf", size_t "nbytes ", off_t *"basep);
Read directory entries from the directory specified by fd into buf. At most nbytes are read. Reading starts at offset *basep, and *basep is updated with the new position after reading.
getdirentries returns the number of bytes read or zero when at the end of the directory. If an error occurs, -1 is returned, and errno is set appropriately.
See the Linux library source code for details.