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.
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 thest_ino
member thatstat
will return for the file. See 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 sizeunsigned 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 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. The symbol
_DIRENT_HAVE_D_TYPE
is defined if this member is available. On systems where it is used, it corresponds to the file type bits in thest_mode
member ofstruct statbuf
. If the value cannot be determine the member value is DT_UNKNOWN. These two macros convert betweend_type
values andst_mode
values:This structure may contain additional members in the future. Their availability is always announced in the compilation environment by a macro names
_DIRENT_HAVE_D_
xxx where xxx is replaced by the name of the new member. For instance, the memberd_reclen
available on some systems is announced through the macro_DIRENT_HAVE_D_RECLEN
.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 etc., are part of the file itself, not of any particular directory entry. See File Attributes.