回声到Linux控制台的价值

时间:2011-11-22 04:01:22

标签: c linux linux-kernel system-calls

如何在C语言中将系统调用中的值输出到Linux控制台,以便在dmesg之后显示?我用什么方法进行打印?

3 个答案:

答案 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函数感兴趣(即使这不能完全回答您的问题)。从应用程序中,它们是获取系统日志记录的正确方法。