我正在为我的驱动程序创建一个/proc 条目。因此,在读取回调函数中,第一个参数是我们为用户写入数据的位置。我搜索了如何在其中写入数据,我可以看到每个人都为此目的使用 sprintf。我很惊讶地看到它在内核空间中工作。然而,在内核空间中使用用户空间函数应该是错误的。我也不知道如何在不使用任何用户空间函数(如 strcpy、sprintf 等)的情况下在该位置写入。我使用的是内核版本 3.9.10。请建议我如何在不使用 sprintf 或任何其他用户空间函数的情况下执行此操作。
最佳答案
大多数“普通”用户空间函数在内核代码中没有任何意义,因此它们在内核中不可用。
但是,一些函数,如 sprintf
、strcpy
或 memcpy
在内核代码中很有用,因此内核实现它们(或多或少完全)并使它们可用于驱动程序。
参见 include/linux/kernel.h和 string.h .
关于linux - 是否在内核中使用像 sprintf 这样的用户空间函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25102623/