GETDENTS (2)
get directory entries
SYNOPSIS
#include <unistd.h>
#include <linux/dirent.h>
#include <linux/unistd.h>
_syscall3(int, getdents, uint, fd, struct dirent *, dirp, uint, count);
int getdents(unsigned int fd , struct dirent * dirp , unsigned int count );
DESCRIPTION
struct dirent
{
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).
RETURN VALUE
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.
ERRORS
EBADF
Invalid file descriptor
fd .
EFAULT
Argument points outside the calling process's address space.
EINVAL
Result buffer is too small.
ENOENT
ENOTDIR
File descriptor does not refer to a directory.
CONFORMING TO
SVr4, SVID. SVr4 documents additional ENOLINK, EIO error conditions.
SEE ALSO
|