用于字符设备用户空间与内核空间消息的传递。 ioctl 是设备驱动程序中设备控制接口函数,一个字符设备驱动通常会实现设备打开、关闭、读、写等功能
_IO: 定义不带参数的 ioctl 命令 _IOW: 定义带写参数的 ioctl 命令(copy_from_user) _IOR: 定义带读参数的ioctl命令(copy_to_user) _IOWR: 定义带读写参数的 ioctl 命令
使用该函数一般需要3块:
包含 ioctl 命令及相关宏定义,可以理解为一份 “协议” 文件内核空间的字符设备驱动,实现了unlocked_ioctl 接口,根据上层用户的 cmd 执行对应的操作(初始化设备、读寄存器、写寄存器)。运行在用户空间的程序
参考: linux 内核 - ioctl 函数详解