【问题标题】:Read linux kernel version using C?使用 C 读取 linux 内核版本?
【发布时间】:2015-09-28 18:26:39
【问题描述】:

我正在使用 Ubuntu,我想阅读它的内核版本。我在 /proc/ 中找到了一个名为 version 的文件,它记录了当前内核的版本。

如果我不想读取文件,有没有其他方法,比如 C 中的内置函数,我可以读取 C 中的版本?

谢谢

【问题讨论】:

  • 为什么不想读取文件?
  • @icktoofay - 因为这样做是一种低效的方式。

标签: c linux-kernel


【解决方案1】:

您可以使用uname() 系统调用。

【讨论】:

    【解决方案2】:

    检查uname 函数。它为您提供了大量信息,而无需解析某些 linux 可执行文件的输出。

    【讨论】:

    • 非常感谢,这正是我需要的。感谢大家的支持。
    • 在您的答案中实际包含该函数的名称,而不是将其隐藏在链接中如何?
    【解决方案3】:

    您可能想尝试使用uname 函数。

    【讨论】:

      【解决方案4】:

      应该这样做:

      system("uname -r");
      

      编辑:在终端中输入 man uname 以获取可与 uname 一起使用的选项列表

      【讨论】:

      • 这只是在标准输出上打印信息。要在程序中使用,最好使用系统调用。
      【解决方案5】:

      或者你可以读取/proc/version,但这不如直接调用uname(2)。 uname(2) 对 C 来说更自然。

      【讨论】:

        【解决方案6】:

        查看this 文章,了解基于shell 的获取内核信息的方法。您可以使用 system() 调用适当地运行所有这些。但我假设在你的情况下这还不够。您需要以某种方式解析 shell 输出。因此使用popen() 调用。

        【讨论】:

          猜你喜欢
          • 2023-03-27
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-01-16
          • 2012-09-05
          • 2014-09-03
          相关资源
          最近更新 更多