用C读取linux内核版本?

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

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

谢谢

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

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

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

这应该做:

 system("uname -r"); 

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

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

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