标签: c linux-kernel procfs
当内核通过procfs写入用户时,我一直认为copy_to_user是必要的。
copy_to_user
我忘了做了一次(我使用snprintf)并且一切正常。现在我注意到了,我一直在寻找。我发现this link并不需要copy_to_user,即使对于其他部分(从用户读取内核),它确实说copy_from_user是必要的。
snprintf
copy_from_user
那么,是否已经在内核空间中向内核模块提供了写入数据(以便用户从中读取)的缓冲区?在通过procfs编写时,您是否真的需要copy_to_user?或者我很幸运没有遇到崩溃?
答案 0 :(得分:2)
处理用户空间指针时始终使用copy_from_user和copy_to_user。即使简单的memcpy有时适合您,也有可能失败的情况。有关信息,请参阅this主题。
memcpy
说到procfs,有必要考虑它使用内核内存预分配的小技巧。有关详细信息,请参阅this链接。
procfs