linux中ioctl函数集的目的是什么?

时间:2015-03-27 09:43:02

标签: c linux kernel freebsd ioctl

在Linux / freeBSD内核中,每当我们必须为设备创建驱动程序模块时,我们在/ dev /文件夹中创建一个文件并使用它与其他进程通信。

如果是这样,ioctl函数集的目的是什么? 无论什么信息,我们希望用设备驱动程序传达可以写入/读取此文件。

任何人都可以解释一下吗?

我曾尝试在tldp.org上阅读它,但无法理解它。

2 个答案:

答案 0 :(得分:2)

ioctl用于I / O控制,例如,我们可以使用串行端口。你打开串口设备,可以从串口读取,并写入串口,但你如何设置例如波特率?还是其他控制选项?使用readwrite进行串行端口读取和写入数据是不可能的,您需要另外一个函数,即ioctl功能进来。

答案 1 :(得分:0)

可以为"控制"创建另一个设备文件。任务并使用普通读/写,而不是ioctl。这种方式根本不需要ioctl。 Plan 9操作系统就是这样做的。

事情是 - Unix系统只是以另一种方式来做。他们总是这么做,而且由于它没有任何问题,很多软件都使用ioctl,为什么还要改变呢?