File: *manpages*,  Node: readdir,  Up: (dir)



READDIR(3)          Linux Programmer's Manual          READDIR(3)

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 be dir.  It returns NULL on
       reaching the end-of-file or if an error occurred.

       The data returned by readdir() is  overwritten  by  subse
       quent 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  pro
       grams.

BUGS
       Field d_type is not implemented as of libc6 2.0.4 and will
       always return 0 (unknown).

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

                           25 July 1997                         1

