Copyright (C) 2000-2012 |
GNU Info (libc.info)Directory EntriesFormat 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. Note: 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. Note: 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 the `st_mode' member of `struct statbuf'. If the value cannot be determine the member value is DT_UNKNOWN. 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 DTYPE) This returns the `st_mode' value corresponding to DTYPE. 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 member `d_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. Note: File Attributes. automatically generated by info2www version 1.2.2.9 |