一个设备除了能够通过读写操作来收发数据或返回、保存数据、还应该有很多其他的操作。
比如一个串口设备还应该具备波特率获取和设置、帧格式获取与设置的操作。
一个LED设备甚至不应该有读写操作,而应该具有点灯和灭灯的操作。
硬件设备如此众多,各种操作纷繁复杂,所以内核将读写之外的其他I/O操作都委派给了另外一个函数接口ioctl,而且文件I/O还具备多种模型,比如有非阻塞、阻塞、I/O多路复用、异步I/O和异步通知。
- IOCTL函数的原型
- 应用程序的ioctl()--->linux的系统IO函数