看书遇到了#include<dirent.h>,/usr/include/目录下找到了两个,dirent.h和bits/dirent.h,第一个用到了第二个头文件,而且第二个简单,先学习以下。
/bits/dirent.h中定义了两个结构体:
文件中还有几个宏定义,没看明白,我不觉得很快会用到。
除此之外,仍有无法理解的语句。
__USE_LARGEFILE64与__USE_FILE_OFFSET64:该宏定义用来操作大文件的时候使用,有关的文章可以看这一篇:http://blog.csdn.net/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是有符号长整型。