Go to the first, previous, next, last section, table of contents.


Format of a Directory Entry

This section describes what you find in a single directory entry, as you might obtain it from a directory stream. All the symbols are declared in the header file `dirent.h'.

Data Type: struct dirent
This is a structure type used to return information about directory entries. It contains the following fields:

char d_name[]
This is the null-terminated file name component. This is the only field you can count on in all POSIX systems.
ino_t d_fileno
This is the file serial number. For BSD compatibility, you can also refer to this member as d_ino. In the GNU system and most POSIX systems, for most files this the same as the st_ino member that stat will return for the file. See section File Attributes.
unsigned char d_namlen
This is the length of the file name, not including the terminating null character. Its type is unsigned char because that is the integer type of the appropriate size
unsigned char d_type
This is the type of the file, possibly unknown. The following constants are defined for its value:
DT_UNKNOWN
The type is unknown. On some systems this is the only value returned.
DT_REG
A regular file.
DT_DIR
A directory.
DT_FIFO
A named pipe, or FIFO. See section FIFO Special Files.
DT_SOCK
A local-domain socket.
DT_CHR
A character device.
DT_BLK
A block device.
This member is a BSD extension. Each value except DT_UNKNOWN corresponds to the file type bits in the st_mode member of struct statbuf. These two macros convert between d_type values and st_mode values:
Function: int IFTODT (mode_t mode)
This returns the d_type value corresponding to mode.
Function: mode_t DTTOIF (int dirtype)
This returns the st_mode value corresponding to dirtype.

This structure may contain additional members in the future.

When a file has multiple names, each name has its own directory entry. The only way you can tell that the directory entries belong to a single file is that they have the same value for the d_fileno field.

File attributes such as size, modification times, and the like are part of the file itself, not any particular directory entry. See section File Attributes.


Go to the first, previous, next, last section, table of contents.