03-通用IO
4.2 通用I/O
UNIX I/O模型的显著特点之一是其输入/输出的通用性概念。这意味着使用4个同样的系统调用open()、read()、write()和close()可以对所有类型的文件执行I/O操作,包括终端之类的设备。因此,仅使用这些系统调用编写的程序,将对任何类型的文件有效。例如,针对程序清单4-1中的程序,如下操作都是有效的:
要实现通用I/O,就必须确保每一文件系统和设备驱动程序都实现了相同的I/O系统调用集。由于文件系统或设备所特有的操作细节在内核中处理,在编程时通常可以忽略设备专有的因素。一旦应用程序需要访问文件系统或设备的专有功能时,可以选择瑞士军刀般的ioctl()系统调用(4.8节),该调用为通用I/O模型之外的专有特性提供了访问接口。