在直接使用低级系统调用时,在输入输出上会存在这样一个问题,就是这些调用存在着效率低的状况。为什么会这样呢?下面我们来分析一下:
为了提供一个高级的接口到设备和磁盘文件,一个Linux或UNIX发行版提供了一些标准库,它们都是可以放入你程序中用来处理这些问题的函数集。比如标准I/O库,它提供了输出缓冲区。这样你就可以有效地以不同的尺寸写入数据块,且为低级系统调用所安排的库函数也以使数据有效的整数据块的方式而被提供。通过这些方式都戏剧化地降低了系统调用的总开销。
库函数通常保存在手册的第三部分,且库函数通常都有一个与它们相关的标准include文件,比如标准I/O库的stdio.h文件。
为了概括地了解我们所讨论的内容,下图是Linux下,不同的文件函数同用户、设备驱动、内核以及硬件间的联系: