Unix系统编程通用的I/O

Posted tuhooo

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Unix系统编程通用的I/O相关的知识,希望对你有一定的参考价值。

UNIX  IO模型的显著特点之一是输出输出概念的通用性,这意味着,4个同样的系统调用open,read,write和close可以对所有类型的文件执行IO操作,包括终端之类的设备。因此仅用这些系统调用编写的程序,对任何类型的文件都有效。卧槽,是不是特别牛逼,妥妥的面相接口的编程啊。

 

那么要达到这种效果其实还是要付出一些东西的。

必须确保每一个文件系统和设备都实现了相同的IO系统调用集。由于文件系统或设备所特有的操作细节在内核中处理,在编程的时候可以忽略设备专有的因素。

 

问题来了,不同的文件系统或者设备肯定会有一些特色的操作,那么只有4个系统调用肯定是不够的,应该怎么办呢?

 

这个时候瑞士军刀ioctl系统调用提供了IO模型之外的专有特性接口。

以上是关于Unix系统编程通用的I/O的主要内容,如果未能解决你的问题,请参考以下文章

unix环境高级编程附录 B 通用代码

TLPI(liunx/unix系统编程手册)笔记 文件IO:通用的IO模型

UNIX环境高级编程:文件I/O

Unix环境高级编程文件I/O

Unix环境高级编程标准I/O库

UNIX环境高级编程 文件I/O