关于readdir返回值中struct dirent.d_type的取值有关问题(转)

时间:2023-03-08 21:44:54
关于readdir返回值中struct dirent.d_type的取值有关问题(转)

关于readdir返回值中struct dirent.d_type的取值问题

原网页链接

http://www.gnu.org/software/libc/manual/html_node/Directory-Entries.html

原文及翻译

混在一起写了

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. Only some filesystems have full support to return the type of the file, others might always return this value.

类型未知。少数文件系统会出现此函数不支持的文件类型,另一些则总是返回这个值。译者注:总之这个值是为了应对不兼容的文件系统而设置的。

DT_REG
        A regular file.

常规文件

DT_DIR
        A directory.

目录

DT_FIFO
        A named pipe, or FIFO. See FIFO Special Files.

一个命名管道,或FIFO。

DT_SOCK
        A local-domain socket.

套接字

DT_CHR
        A character device.

字符设备

DT_BLK
        A block device.

块设备

DT_LNK
        A symbolic link.

符号链接

d_type的具体数值

以下内容转自http://blog.csdn.net/angle_birds/article/details/8503039

 d_type表示档案类型:

enum
{
DT_UNKNOWN = 0,
# define DT_UNKNOWN DT_UNKNOWN
DT_FIFO = 1,
# define DT_FIFO DT_FIFO
DT_CHR = 2,
# define DT_CHR DT_CHR
DT_DIR = 4,
# define DT_DIR DT_DIR
DT_BLK = 6,
# define DT_BLK DT_BLK
DT_REG = 8,
# define DT_REG DT_REG
DT_LNK = 10,
# define DT_LNK DT_LNK
DT_SOCK = 12,
# define DT_SOCK DT_SOCK
DT_WHT = 14
# define DT_WHT DT_WHT
};