READDIR

NAME
SYNOPSIS
DESCRIPTION
RETURN VALUE
ERRORS
CONFORMING TO
BUGS
SEE ALSO

NAME

readdir - read a directory

SYNOPSIS

#include <sys/types.h>

#include <dirent.h>

struct dirent *readdir(DIR *dir);

DESCRIPTION

The readdir() function returns a pointer to a dirent structure representing the next directory entry in the directory stream pointed to by dir. It returns NULL on reaching the end-of-file or if an error occurred.
The data returned by readdir() is overwritten by subsequent calls to readdir() for the same directory stream.
The dirent structure is defined as follows:
struct dirent {
        long            d_ino;  /* inode number */
        off_t           d_off;  /* offset to the next dirent */
        unsigned short  d_reclen;/* length of this record */
        unsigned char   d_type;         /* type of file */
        char            d_name[256];    /* filename */
};

RETURN VALUE

The readdir() function returns a pointer to a dirent structure, or NULL if an error occurs or end-of-file is reached.

ERRORS

EBADF
Invalid directory stream descriptor dir.

CONFORMING TO

SVID 3, POSIX, BSD 4.3
According to POSIX, the dirent structure contains a field char d_name[] of unspecified size, with at most NAME_MAX characters preceding the terminating null character. Use of other fields will harm the portability of your programs.

BUGS

Field d_type is not implemented as of libc6 2.1 and will always return DT_UNKNOWN (0).

SEE ALSO

read(2), opendir(3), closedir(3), rewinddir(3), seekdir(3), telldir(3), scandir(3)