2010-06-07 146 views
8

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

如果我不想读取文件,是否有任何其他方式,如C中的内置函数,我可以读取C中的版本?

感谢

+2

为什么你不想读取文件? – icktoofay 2010-06-07 06:58:43

+0

@icktoofay - 因为这将是执行此操作的低效方式。 – Geoffrey 2012-08-25 09:36:59

回答

8

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

+1

非常感谢,这就是我需要的。非常感谢您的支持。 – ipkiss 2010-06-10 03:35:37

+0

如何在你的答案中包含该函数的名称,而不是将其隐藏在链接中? – Alnitak 2015-09-24 14:31:21

+0

已修复。很长一段时间,因为我一直在SO。谢谢! – INS 2015-09-28 10:26:59

3

这应该这样做:

system("uname -r"); 

编辑:在终端类型man uname获取一个选项列表,你可以用uname

+6

这只是在标准输出上打印信息。要在程序中使用它,最好使用系统调用。 – 2010-06-07 07:10:24

7

使用您可能需要使用uname尝试功能。

0

看看this文章为基于shell的获取内核信息的方式。您可以使用system()调用适当地运行所有这些。但我认为这对你来说还不够。你需要解析shell输出。因此请拨打popen()

0

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

相关问题