READDIR(2) manual page
Table of Contents
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 as follows:
struct old_linux_dirent {
long d_ino; /* inode number */
off_t d_off; /* offset to this old_linux_dirent */
unsigned short d_reclen; /* length of this d_name */
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 this old_linux_dirent. d_reclen is the size of d_name, not counting the
terminating null byte (aq\0aq). 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.
- EBADF
- Invalid file
descriptor 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.
This system
call is Linux-specific.
Glibc does not provide a wrapper for this system
call; call it using syscall(2)
. You will need to define the old_linux_dirent
structure yourself. However, probably you should use readdir(3)
instead.
This system call does not exist on x86-64.
getdents(2)
, readdir(3)
This page is part of release 3.78 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 http://www.kernel.org/doc/man-pages/.
Table of Contents