如何在C语言中将系统调用中的值输出到Linux控制台,以便在dmesg
之后显示?我用什么方法进行打印?
答案 0 :(得分:8)
您正在寻找printk()
功能;有关其支持的类型的一些文档可在Documentation/printk-formats.txt
中找到。它在kernel/printk.c
中定义。
答案 1 :(得分:2)
我认为你的意思是在用户空间。您可以将字符串写入/dev/kmsg
。在shell中,只需echo
它。在C中,它也很容易。
[root@cr0 ~]# echo hello > /dev/kmsg
[root@cr0 ~]# dmesg | tail -1
[24156.408735] hello
但是,如果你的意思是在内核空间,当然,你需要调用printk()
。
答案 2 :(得分:1)
此外,您可能会对openlog & syslog函数感兴趣(即使这不能完全回答您的问题)。从应用程序中,它们是获取系统日志记录的正确方法。