getdents - get directory entries
int getdents(unsigned int fd, struct dirent * dirp, unsigned int count );
getdents(2) reads several dirent structures from the directory pointed at by fd into the memory area pointed to by dirp. The parameter count is the size of the memory area.
- The dirent structure is declared as follows
long d_ino; /* inode number /
off_t d_off; / offset to next dirent /
unsigned short d_reclen; / length of this dirent /
char d_name [NAME_MAX+1?; / file name (null-terminated) */
d_ino is an inode number. d_off is the distance from the start of the directory to the start of the next dirent. d_reclen is the size of this entire dirent. d_name is a null-terminated file name.
This call supersedes readdir(2).
On success, the number of bytes read is returned. On end of directory, 0 is returned. On error, -1 is returned, and errno is set appropriately.
- Invalid file descriptor fd.
- Argument points outside the calling process's address space.
- Result buffer is too small.
- No such directory.
- File descriptor does not refer to a directory.
SVr4, SVID. SVr4 documents additional ENOLINK, EIO error conditions.