1. Unix I/O
一个 Linux 文件就是一个 m 个字节的序列
所有的 I/O 设备(例如网络、磁盘和终端)都被模型化为文件,而所有的输入和输出都被当 作对相应文件的读和写来执行。
- 打开文件后,通过文件描述符来寻找文件
- 由三个默认打开的文件:标准输入( 0)、标准输出(1) 和标准错误(2)
- 改变当前的文件位置。对于每个打开的文件,内核保持着一个文件位置,表示文件操作的位置
- 读写文件。读/写n个字节,k将加n。
- 关闭文件。释放资源
2. 文件
- 普通文件:无论是二进制文件还是文本文件,底层都是二进制存储
- 目录:是一组链接的文件,读取后可以获得一个目录流
- 套接字:网络通信
3. 打开/关闭文件
进程是通过调用 open 函数来打开一个已存在的文件或者创建一个新文件的:
flags: 读/写/都可以,不存在创建新的
mode: 权限
4. 读写文件
read 函数从描述符为 fd 的当前文件位置复制最多 n 个字节到内存位置 buf,返回值一1