我一直认为当内核通过procfs写入用户时,copy_to_user
是必要的。
但我忘了做一次(我用了snprintf
),一切都很好现在我注意到了,我一直在寻找我发现this link并不表示需要copy_to_user
,即使对于另一部分(从用户那里读取内核),它确实表示需要copy_from_user
。
那么,是否已经向内核模块提供了缓冲区,以便在内核空间中写入数据(以便用户从中读取数据)通过procfs编写时,您是否真的不需要copy_to_user
或者我有幸没有撞车?
最佳答案
在处理用户空间指针时,始终使用copy_from_user
和copy_to_user
即使simplememcpy
有时对您有用,但在某些情况下它可能会失败有关信息,请参见this线程。
说到procfs
有必要考虑到它在内核内存预分配中使用了一个小技巧有关详细信息,请参见this链接。