技术解析

求教一个问题:内核空间和用户空间如何交换结构体变量的数据?
0
2021-07-19 01:42:44
idczone
内核模块中定义了一个结构体变量,希望在用户空间编程修改其属性,通过sysfs 、procfs 和 ctl_table是不是一次只能修改一个属性?或者还有没有其他的方法? 感谢
已解决:
在模块中注册一个字符设备,实现其write函数。write的原形是ssize_t write(struct file *filp, const void __user *buff, size_t len, loff_t *off), 其中buff可以强制转换为struct类型。在write函数中使用copy_from_user函数,就可以将buff变量赋给内核中的某个变量。

要注意一些位宽可能变化的类型,如 long 等,32-bit 4-byte, 64-bit 8-byte.

数据地带为您的网站提供全球顶级IDC资源
在线咨询
专属客服