17

我想使用 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,
};

知道为什么会这样。

谢谢

4

2 回答 2

23

在较新的内核中,首选方法是使用.unlocked_ioctlor.compat_ioctl字段。平原.ioctlstruct file_operations. 这个讨论可能会澄清发生了什么以及如何处理它。

于 2011-05-04T04:25:27.480 回答
4

在较新的内核中,使用.unlocked_ioctl. .ioctl它工作正常。

于 2012-10-16T19:08:34.780 回答