2

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

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

那么,提供给内核模块的缓冲区是否已经在内核空间中写入数据(以便用户从中读取)?copy_to_user通过procfs写的时候真的不需要吗?还是我很幸运没有撞车?

4

1 回答 1

2

在处理用户空间指针时总是使用copy_from_user和。copy_to_user即使简单memcpy有时对您有用,但在某些情况下它可能会失败。有关信息,请参阅线程。

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

于 2012-04-03T11:49:21.453 回答