2010-06-07 9 views
8

Używam Ubuntu i chcę przeczytać wersję jego jądra. Znalazłem plik o nazwie version w/proc /, który zapisuje wersję bieżącego jądra.Przeczytaj wersję jądra Linuxa używając C?

Jeśli nie chcę czytać pliku, czy jest jakiś inny sposób, np. Wbudowana funkcja w C, czy mogę odczytać wersję w C?

Dzięki

+2

Dlaczego nie chcesz czytać pliku? – icktoofay

+0

@icktoofay - ponieważ byłby to nieskuteczny sposób na wykonanie tego. – Geoffrey

Odpowiedz

8

Sprawdź funkcję uname. Daje wiele informacji bez potrzeby analizowania danych wyjściowych niektórych plików wykonywalnych systemu Linux.

+1

Wielkie dzięki, tego właśnie potrzebuję. Dziękuję wszystkim za wsparcie. – ipkiss

+0

Co powiesz na faktyczne umieszczenie nazwy tej funkcji w odpowiedzi, zamiast ukryć ją w linku? Naprawiono – Alnitak

+0

. dawno temu odkąd jestem na SO. dzięki! – INS

3

ten powinien zrobić:

system("uname -r"); 

EDIT: typ man uname w terminalu, aby uzyskać listę opcji można skorzystać z uname

+6

To po prostu drukuje informacje na standardowe wyjście. Aby użyć go w programie, lepiej użyj wywołania systemowego. –

7

Możesz też spróbować użyć uname funkcjonować.

0

Zajrzyj do artykułu this, aby uzyskać informacje o jądrze w oparciu o powłokę. Możesz odpowiednio uruchomić to wszystko za pomocą wywołania system(). Ale zakładam, że to nie wystarczy w twoim przypadku. W razie potrzeby musisz przetworzyć zawartość powłoki. Dlatego korzystaj z połączenia popen().

0

Lub możesz przeczytać/proc/version, ale nie jest to tak dobre, jak bezpośrednie wywołanie uname (2). uname (2) jest bardziej naturalny niż dla C.