2010-06-07 12 views
8

Estoy usando Ubuntu y quiero leer la versión de su kernel. Encontré un archivo llamado versión en/proc/que registra la versión del kernel actual.¿Lees la versión del kernel de Linux usando C?

Si no quiero leer el archivo, ¿hay alguna otra manera, como la función incorporada en C, de que pueda leer la versión en C?

Gracias

+2

¿Por qué no quieres leer un archivo? – icktoofay

+0

@icktoofay - Porque esa sería una forma ineficiente de realizar esto. – Geoffrey

Respuesta

8

Compruebe la función uname. Le da mucha información sin la necesidad de analizar la salida de algunos ejecutables de Linux.

+1

Muchas gracias, eso es lo que necesito. Gracias a todos por su apoyo. – ipkiss

+0

¿qué hay de realmente incluir el nombre de esa función en su respuesta, en lugar de ocultarlo en el enlace? – Alnitak

+0

fijo. mucho tiempo desde que he estado en SO. ¡Gracias! – INS

3

Esto debería hacer:

system("uname -r"); 

EDIT: Tipo de man uname en un terminal para obtener la lista de opciones que puede utilizar con uname

+6

Esto solo imprime la información en la salida estándar. Para usarlo en el programa, mejor use la llamada al sistema. –

7

Es posible que desee probar el uso de la uname función.

0

Mire this artículo para la forma de shell para obtener información del kernel. Puede ejecutar todo esto de manera adecuada con la llamada al sistema(). Pero supongo que eso no sería suficiente en tu caso. Necesitarías de alguna manera analizar la salida de shell. Por lo tanto, haga uso de la llamada popen().

0

O puede leer/proc/version, pero esto no es tan bueno como llamar a uname (2) directamente. uname (2) es más natural para C.

Cuestiones relacionadas