在内核模式和用户模式之间使用ioctl通信
Posted
技术标签:
【中文标题】在内核模式和用户模式之间使用ioctl通信【英文标题】:Using ioctl communication between Kernel mode and user mode 【发布时间】:2011-08-17 15:43:59 【问题描述】:我想使用 ioctl 与我的内核模块进行通信。我已经编写了两个 c 程序,一个用于内核模块,另一个用于用户模式。编译内核模块时出现此错误:
错误:在初始化程序中指定了未知字段“ioctl”
在这一行:
struct file_operations Fops =
.read = device_read,
.write = device_write,
.ioctl = device_ioctl, ------> at this point error is occuring.
.open = device_open,
.release = device_release,
;
知道为什么会这样。
谢谢
【问题讨论】:
【参考方案1】:在较新的内核中,首选方法是使用.unlocked_ioctl
或.compat_ioctl
字段。普通的.ioctl
已从struct file_operations
中删除。 This discussion 可能会澄清发生了什么以及如何处理。
【讨论】:
【参考方案2】:在较新的内核中,使用.unlocked_ioctl
代替.ioctl
。它工作正常。
【讨论】:
以上是关于在内核模式和用户模式之间使用ioctl通信的主要内容,如果未能解决你的问题,请参考以下文章