平台 | 内核版本 | 安卓版本 |
---|---|---|
RK3588 |
Linux 5.10 |
Android 12 |
文章目录
沉淀、分享、成长,让自己和他人都能有所收获!😄
📢本篇我们来讲的 ioctl
接口。
在内核 3.0
以前,ioctl 接口的名字叫 ioctl;内核 3.0 以后,ioctl 接口的名字叫 unlocked_ioctl。unlocked_ioctl就是 ioctl 接口,但是功能和对应的系统调用均没有发生变化。unlocked_ioctl 和 read/write 函数有什么异同呢?相同点:都可以往内核写数据。不同点:read 函数只能完成读的功能,write 只能完成写的功能。读取大数据的时候效率高。ioctl 既可以读也可以写,读取大数据的时候效率不高。
我们现在有了 ioctl 函数,内核已经把工作的任务给我们区分了,定义命令就不再使用 read 和 write 函数了,而是使用 ioctl 函数,因为 ioctl 函数的任务就是对我们的工作参数进行设置和查询,write 和 read 函数专注于数据传输。
在驱动程序里, io