看书遇到了#include<dirent.h>,/usr/include/目录下找到了两个,dirent.h和bits/dirent.h,第一个用到了第二个头文件,而且第二个简单,先学习以下。
/bits/dirent.h中定义了两个结构体:
文件中还有几个宏定义,没看明白,我不觉得很快会用到。
除此之外,仍有无法理解的语句。
__USE_LARGEFILE64与__USE_FILE_OFFSET64:该宏定义用来操作大文件的时候使用,有关的文章可以看这一篇:http://blog.youkuaiyun.com/tellyouatruth/article/details/5747543,我没有定义,所以用到的就是第一个。
__ino_t:该类型是什么类型?一步一步查找下去:
在/usr/include/bits/types.h 中,
不过后面的注释搞不懂:file serial numbers,也没有查到是什么意思,先放一放。
这句中的__STD_TYPE也在/usr/include/bits/types.h定义:
语句中的__INO_T_TYPE定义 在/usr/inlcude/bits/typesizes.h:
而__SYSCALL_ULONG_TYPE也在同一个文件中:
至于__UQUAD_TYPE,在第三张截图中已经给出了,指的是无符号长整型。我的系统是x86_64的centos7,无符号长整型是8Byte长。那么 __ino_t就是无符号长整型。
同样地,找到__off_t是有符号长整型。
本文解析了Linux系统中用于目录操作的头文件dirent.h及其内部结构体定义,并探讨了__ino_t等类型的含义及其与大文件操作相关的宏定义。
4426

被折叠的 条评论
为什么被折叠?



