readdir

NAME

readdir - read directory entry

SYNOPSIS

#include <linux/types.h>
#include <linux/dirent.h>
 I int readdir(unsigned int  fd , struct dirent * dirp ,
I             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, which can change, and which is superseded by getdents(2).
R readdir () reads one dirent structure from the directory pointed at by fd into the memory area pointed to by R dirp . The parameter count is ignored; at most one dirent structure is read.
The dirent structure is declared as follows:
struct dirent
{
    long d_ino;                 /* inode number */
    off_t d_off;                /* offset to this 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 R dirent . d_reclen is the size of R d_name , not counting the null terminator. d_name is a null-terminated filename.

RETURN VALUE

On success, 1 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

This system call is Linux specific.

NOTES

Glibc does not provide a wrapper for this system call; call it using syscall(2).

SEE ALSO