文件的类型在linux当中是使用st_mode来存储的:
- 前四位是文件类型,最多16中,目前7种
- 中间三位代表属性usr , group, sticky, 1代表有,0代表没有
- 读、写、执行,usr , group, sticky,
掩码
这里插播一下掩码的概念
在这本书里我见到了所有阅读的书里对掩码最好的定义,就直接截过来了:
掩码在文件类型中的应用
以S_IFMT为例
info.st_mode & S_IFMT == S_IFREG
就是文件是否为regular的判断条件
更简单的方法:
sys/stat.h中有宏定义的,可以直接用
使用宏的写法:
if(S_ISDIR(info.st_mode)) //是否是directory