我正在调整驻留在linux内核的/net
目录中的代码。
我正在尝试打印等内容,但我发现没有相关的标题(例如stdlib.h
,stdio.h
等)。那么如何在内核级别执行此操作呢?
答案 0 :(得分:5)
您不能在内核中使用任何用户空间库函数,您应该只使用内核导出的函数。所以,不会有stdio.h
,stdlib.h
等。如果你想在内核中打印一些东西,你有printk()
函数,这相当于printf()
in用户空间。
另请参阅我的博文Linux Module Programming Part1和Part2。
答案 1 :(得分:2)
内核模块无权访问C标准库。内核中有一些函数可用;查看内核源代码中的lib
directory或您喜欢的Linux内核编程手册(如果没有,Linux Device Drivers是一个很好的,并且可以在线获得)。对于printf调试,有printk
,它向内核日志发送消息。