深入理解计算机系统 第十章 系统级I/O

 

很多高级语言都提供了执行 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 系列函数来读取目录的内容

 

posted @ 2019-01-20 20:16  stoneBlog  阅读(219)  评论(0编辑  收藏  举报