求教一个问题:内核空间和用户空间如何交换结构体变量的数据?

2014-03-16 17:17:05 +08:00
 ffits
内核模块中定义了一个结构体变量,希望在用户空间编程修改其属性,通过sysfs 、procfs 和 ctl_table是不是一次只能修改一个属性?或者还有没有其他的方法? 感谢
2745 次点击
所在节点    Linux
2 条回复
ffits
2014-03-16 19:18:00 +08:00
已解决:

在模块中注册一个字符设备,实现其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变量赋给内核中的某个变量。
heiher
2014-04-24 17:15:53 +08:00
要注意一些位宽可能变化的类型,如 long 等,32-bit 4-byte, 64-bit 8-byte.

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/104545

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX