readdir - read directory entry
int readdir(unsigned int fd, struct old_linux_dirent *dirp,
unsigned int count);
Note
: There is no glibc wrapper for this system call; see
NOTES.
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, which is superseded by getdents(2).
readdir() reads one old_linux_dirent
structure from the directory referred to by the file descriptor
fd
into the buffer pointed to by dirp
. The argument
count
is ignored; at most one old_linux_dirent
structure is read.
The old_linux_dirent
structure is declared (privately in
Linux kernel file fs/readdir.c) as follows:
struct old_linux_dirent {
unsigned long d_ino; /* inode number */
unsigned long d_offset; /* offset to this old_linux_dirent */
unsigned short d_namlen; /* length of this d_name */
char d_name[1]; /* filename (null-terminated) */
}
d_ino
is an inode number. d_offset
is the distance
from the start of the directory to this old_linux_dirent
.
d_reclen
is the size of d_name
, not counting the
terminating null byte ('\0'). d_name
is a null-terminated
filename.
On success, 1 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.
This system call is Linux-specific.
This page is part of release 5.10 of the Linux man-pages
project. A description of the project, information about reporting bugs,
and the latest version of this page, can be found at
https://www.kernel.org/doc/man-pages/.