| readdir - read a directory |
#include <sys/types.h> #include <dirent.h> struct dirent *readdir(DIR *dir); |
| 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 */
};
|
| The readdir() function returns a pointer to a dirent structure, or NULL if an error occurs or end-of-file is reached. |
| EBADF |
| Invalid directory stream descriptor dir. |
| 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. |
| Field d_type is not implemented as of libc6 2.1 and will always return DT_UNKNOWN (0). |
| read(2), opendir(3), closedir(3), rewinddir(3), seekdir(3), telldir(3), scandir(3) |