请教一个dirent结构体的问题
请问一下枚举类型0,1,2,4代表什么类型的文件 ? # define DT_UNKNOWN DT_UNKNOWN 后面的变量完全一样,这样定义有什么用途??
01 enum
02 {
03 DT_UNKNOWN = 0,
04 # define DT_UNKNOWN DT_UNKNOWN
05 DT_FIFO = 1,
06 # define DT_FIFO DT_FIFO
07 DT_CHR = 2,
08 # define DT_CHR DT_CHR
09 DT_DIR = 4,
10 # define DT_DIR DT_DIR
11 DT_BLK = 6,
12 # define DT_BLK DT_BLK
13 DT_REG = 8,
14 # define DT_REG DT_REG
15 DT_LNK = 10,
16 # define DT_LNK DT_LNK
17 DT_SOCK = 12,
18 # define DT_SOCK DT_SOCK
19 DT_WHT = 14
20 # define DT_WHT DT_WHT
21 };
------解决方案--------------------FIFO 代表管道
CHR 代表字符设备
UNKOWN 就是未知的意思啊
------解决方案--------------------0 未知文件~
1 管道
2 字符设备 ~ 就是流..
4 就是目录文件..
# define DT_UNKNOWN DT_UNKNOWN
前面是个宏名.. 后面是值把..
------解决方案--------------------经调查,那些宏都是d_type字段,这个字段是属于dirent结构体,在<bits/dirent.h>中有定义。这个结构体也包括了目录名称(文件名称)等等。
我们可以利用这些宏来判断是哪种类型的目录(文件)。至于为什么8表示普通文件,4表示目录,不太清楚。
或许可以用“系统默认”、“系统设置”等来解释。就像标准输入、标准输出文件描述号为0、1之类的。
等待高手给权威解释。
------解决方案--------------------11 DT_BLK = 6, 块特别设备
13 DT_REG = 8, 普通文件
15 DT_LNK = 10, 符号链接
17 DT_SOCK = 12, socket套接字
19 DT_WHT = 14 whiteout --不知道什么意思