NAME
getdents - get directory entries
SYNOPSIS
#include <unistd.h>
#include <linux/types.h>
#include <linux/dirent.h>
#include <linux/unistd.h>
#include <errno.h>
I int getdents(unsigned int fd , struct dirent * dirp , unsigned int count );
DESCRIPTION
This is not the function you are interested in.
Look at
readdir(3)
for the POSIX conforming C library interface.
This page documents the bare kernel system call interface.
The system call
R getdents ()
reads several
dirent
structures from the directory
pointed at by
fd
into the memory area pointed to by
R dirp .
The parameter
count
is the size of the memory area.
The
dirent
structure is declared as follows:
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]; /* filename (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
R dirent .
d_reclen
is the size of this entire
R dirent .
d_name
is a null-terminated filename.
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
R fd .
EFAULT
Argument points outside the calling process's address space.
EINVAL
Result buffer is too small.
ENOENT
No such directory.
ENOTDIR
File descriptor does not refer to a directory.
CONFORMING TO
SVr4.
NOTES
Glibc does not provide a wrapper for this system call; call it using
syscall(2).
SEE ALSO