【TLPI读书笔记】 四、文件I/O:通用的I/O模型
概述
- 所有执行I/O操作的系统调用都以文件描述符,一个非负整数的,来指代打开的文件。
- 文件描述符用以表示所有类型的已打开文件,包括管道、FIFO、socket、终端、设备和普通文件。
- 针对每个进程,文件描述符都自成一套。
- 文件描述符
0,1,2表示标准输入,标准输出,标准错误,这三个文件描述符在进程中始终是打开的 下面介绍执行文件I/O操作的4个主要系统调用:
fd = open(pathname, flags, mode)函数打开pathname所标识的文件,并返回文件描述符,用以在后续函数调用中指代打开的文件numread = read(fd, buffer, count)调用从fd所指代的打开文件中读取至多count字节的数据,并存储到buffer中numwritten = write(fd, buffer, count)调用从buffer中读取多达count字节的数据写入由fd所指代的已打开文件中status = close(fd)在所有输入/输出操作完成后,调用close(),释放文件描述符fd以及与之相关的内核资源