3.1 引言
本章描述的函数被成为不带缓冲的IO,指的是每个read、write都调用内核中的一个系统调用;
3.2 文件描述符
- 非负整数
- shell中 文件描述符0标准输入,1标准输出,2标准错误
3.3 open.openat
- 这两个函数返回的一定是最小的且未使用的文件描述符
- 当前大多数系统支持最长文件名为255字节
3.4 create
该函数可以用open替代
3.5 close
- 当一个进程终止时,内核自动关闭该进程打开的所有文件
- 关闭一个文件时,同时释放该进程加在文件上的所有记录锁(不清楚记录锁是什么,14章有讲解)
3.6 lseek
- 显示的为一个打开的文件设置偏移量,除非指定O_APPEND选项,否则该偏移量设置为0
- lseek设置偏移量可以大于文件当前长度,此时写文件会造成文件‘空洞’,由0填充,需要说明的是‘空洞’一般不占用磁盘空间(依赖文件系统具体实现)
3.7 read
- 读到文件结尾返回0,否则返回读到的字节数,小于等于指定的字节数
- 每次最多读SSIZE_MAX字节数