以下文字翻译自Beginning Linux Programming的小节System Calls and Device Drivers
你可以通过一些
方法(
function
)来
获得以及控制文件和设备。这些方法
内置于
Unix(以及Linux)系统,被称为系统调用方法(system calls),是操作系统的接口。
在操作系统的核心(
内核
)是一些设备驱动(device drivers)。这是一系列用来控制系统硬件的底层接口(low-level interface)。[此处省略两个有关驱动的例子]
为了提供相似的接口,设备驱动封装了所有的硬件相关的特性。对于那些特殊的
硬件
特性,可以通过系统调用方法
ioctrl
来使用。
/dev目录下的设备文件也能够被打开,读取,写入以及关闭。例如,用来获取普通文件的open调用也可以用来获取用户终端、打印机、磁盘驱动器。
用来获得设备驱动的底层方法、系统调用方法有:
- open: 打开文件或者设备
- read: 读取已经打开的文件或者设备
- write: 写入文件或者设备
- close: 关闭文件或者设备
- ioctrl: 传递控制信息到设备驱动
系统调用方法ioctrl用来提供一些必要的硬件指定控制(hardware-specific control)——
对比
通常的输入输出,所以ioctrl的使用因设备不同而不同,因此,ioctrl不具备移植性。此外,每个驱动都定义了自己的一套ioctrl指令。
系统调用在用户手册(manual page)第二节中有详细的文档。在include文件里,可以看到函数的声明(prototype),可以了解到参数列表、返回值类型,以及一些常数定义。文件中这些原型都有详细的描述。