2010-06-07 4 views
8

Ich benutze Ubuntu und ich möchte die Version seines Kernels lesen. Ich habe eine Datei namens version in/proc gefunden, die die Version des aktuellen Kernels aufzeichnet.Lesen Linux Kernel-Version mit C?

Wenn ich nicht Datei lesen möchte, gibt es eine andere Möglichkeit, wie eingebaute Funktion in C, dass ich die Version in C lesen kann?

Dank

+2

Warum willst du nicht eine Datei lesen? – icktoofay

+0

@icktoofay - Weil das eine ineffiziente Art wäre, dies durchzuführen. – Geoffrey

Antwort

8

Überprüfen Sie die uname Funktion. Es gibt Ihnen viele Informationen, ohne die Ausgabe einiger ausführbarer Linux-Dateien analysieren zu müssen.

+1

Vielen Dank, das ist was ich brauche. Vielen Dank für Ihre Unterstützung. – ipkiss

+0

Wie wäre es eigentlich, den Namen dieser Funktion in Ihre Antwort aufzunehmen, anstatt sie in der Verknüpfung zu verstecken? – Alnitak

+0

behoben. lange Zeit seit ich SO bin. Vielen Dank! – INS

3

Dies sollte tun:

system("uname -r"); 

EDIT: Typ man uname in einem Terminal die Liste der Optionen, um Sie mit uname

+6

Dies druckt nur die Informationen auf der Standardausgabe. Um es im Programm zu verwenden, verwenden Sie besser den Systemaufruf. –

7

Sie könnten versuchen wollen verwenden können, um die uname mit Funktion.

0

Schauen Sie sich this Artikel für die Shell-basierte Art Kernel Informationen zu erhalten. Sie können dies alles mit dem Aufruf von system() ausführen. Aber ich gehe davon aus, dass das in Ihrem Fall nicht ausreichen würde. Sie müssten die Shell-Ausgabe analysieren. Verwenden Sie daher popen() Aufruf.

0

Oder Sie können lesen/proc/version, aber das ist nicht so gut wie uname (2) direkt aufrufen. uname (2) ist natürlicher zu C.