2010-06-07 150 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更自然。

相關問題