我一直在为 linux 内核编写一个字符设备模块,但我有点困惑。
我在网上看到有人谈论使用ioctl()
将命令/数据从用户程序传输到内核空间,反之亦然。但是,用file_operations struct
// structure containing callbacks
static struct file_operations fops =
{
.read = dev_read, // address of dev_read
.open = dev_open, // address of dev_open
.write = dev_write, // address of dev_write
.release = dev_rls, // address of dev_rls
};
ioctl()
使用而不是使用定义的函数dev_read()
以及dev_write()
简单地将数据块复制到用户区/从用户区复制数据块copy_to_user()
有什么好处copy_from_user()
?