很多高级语言都提供了执行 I/O 的较高级别的函数。为什么我们还要学习 Unix I/O?
原因:
1、由于 I/O 和其他系统概念之间有循环依赖关系,故了解 Unix I/O 将帮助我们理解其他的系统概念
2、有些特殊情况,只能或最好使用 Unix I/O。比如标准 I/O 库没有提供读取文件元数据(文件大小和文件创建时间)的方式
由于所有的 I/O 设备都被模型化为文件,所有的输入和输出都被当做对相应文件的读和写来执行。使得所有的输入和输出都能以一种统一且一致的方式来执行。
一般有以下几种输入输出操作:
1、打开文件
2、改变当前的文件位置
3、读写文件
4、关闭文件
Linux 文件的类型包含以下几种:
1、普通文件
2、目录
3、套接字
Linux 内核将所有文件都组织成一个目录层次结构,由名为 / 的根目录确定
进程通过 open 函数打开一个已存在的文件或者创建一个新的文件,通过 read 和 write 函数来执行输入和输出。
应用程序能够通过调用 stat 和 fstat 函数,检索到关于文件的信息(有时也称为文件的元数据)
应用程序可以用 readdir 系列函数来读取目录的内容