procfs是否需要copy_to_user?

时间:2012-04-03 10:28:38

标签: c linux-kernel procfs

当内核通过procfs写入用户时,我一直认为copy_to_user是必要的。

我忘了做了一次(我使用snprintf)并且一切正常。现在我注意到了,我一直在寻找。我发现this link并不需要copy_to_user,即使对于其他部分(从用户读取内核),它确实说copy_from_user是必要的。

那么,是否已经在内核空间中向内核模块提供了写入数据(以便用户从中读取)的缓冲区?在通过procfs编写时,您是否真的需要copy_to_user?或者我很幸运没有遇到崩溃?

1 个答案:

答案 0 :(得分:2)

处理用户空间指针时始终使用copy_from_usercopy_to_user。即使简单的memcpy有时适合您,也有可能失败的情况。有关信息,请参阅this主题。

说到procfs,有必要考虑它使用内核内存预分配的小技巧。有关详细信息,请参阅this链接。