【问题标题】:Echo value to Linux console将值回显到 Linux 控制台
【发布时间】:2011-11-22 04:01:21
【问题描述】:

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

【问题讨论】:

    标签: c linux linux-kernel system-calls


    【解决方案1】:

    您正在寻找printk() 函数;在Documentation/printk-formats.txt 中可以找到有关它支持的类型的一些文档。它在kernel/printk.c中定义。

    【讨论】:

      【解决方案2】:

      我假设你的意思是在用户空间。您可以将字符串写入/dev/kmsg。在 shell 中,只需 echo 即可。在 C 中,这也很容易。

      [root@cr0 ~]# echo hello > /dev/kmsg
      [root@cr0 ~]# dmesg | tail -1
      [24156.408735] hello
      

      但是如果你的意思是在内核空间,当然你需要调用printk()

      【讨论】:

        【解决方案3】:

        此外,您可能会对openlog & syslog 函数感兴趣(即使这不能完全回答您的问题)。在应用程序中,它们是获取系统日志的正确方法。

        【讨论】:

          猜你喜欢
          • 2016-08-12
          • 2011-12-03
          • 2017-01-10
          • 2021-06-22
          • 2013-07-31
          • 2013-08-23
          • 1970-01-01
          • 2013-12-22
          • 1970-01-01
          相关资源
          最近更新 更多