| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
#include <dirent.h> struct dirent *readdir(DIR *dir); |
This function reads entries from a directory opened by opendir
(see section opendir). It returns the information in a static buffer with
this format:
struct dirent {
unsigned short d_namlen; /* The length of the name (like strlen) */
char d_name[MAXNAMLEN+1]; /* The name */
mode_t d_type; /* The file's type */
};
|
Note that some directory entries might be skipped by readdir,
depending on the bits set in the global variable
__opendir_flags. See section opendir.
The possible values of the d_type member are:
DT_REG
DT_BLK
DT_CHR
DT_DIR
DT_FIFO
DT_LABEL
DT_LNK
DT_SOCK
DT_UNKNOWN
d_type
member if the exact file's type is too expensive to compute. If the
__OPENDIR_NO_D_TYPE flag is set in the global variable
__opendir_flags, all files get marked with
DT_UNKNOWN.
The macro DTTOIF (see section DTTOIF) can be used to convert the
d_type member to the equivalent value of the st_mode
member of struct stat, see stat.
A pointer to a static buffer that is overwritten with each call.
| ANSI/ISO C | No |
| POSIX | 1003.2-1992; 1003.1-2001 (see note 1) |
Notes:
__opendir_flags variable is DJGPP-specific. The d_type member is an extension available on some systems such as GNU/Linux.
DIR *d = opendir(".");
struct dirent *de;
while (de = readdir(d))
puts(de->d_name);
closedir(d);
|
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |