2010-06-07 33 views
8

Tôi đang sử dụng Ubuntu và tôi muốn đọc phiên bản hạt nhân của nó. Tôi tìm thấy một tập tin có tên là phiên bản trong/proc/ghi lại phiên bản của hạt nhân hiện tại.Đọc phiên bản hạt nhân Linux bằng C?

Nếu tôi không muốn đọc tệp, có cách nào khác, như hàm dựng sẵn trong C, tôi có thể đọc phiên bản trong C không?

Cảm ơn

+2

Tại sao bạn không muốn đọc tệp? – icktoofay

+0

@icktoofay - Bởi vì đó sẽ là một cách không hiệu quả để thực hiện việc này. – Geoffrey

Trả lời

8

Kiểm tra chức năng uname. Nó cung cấp cho bạn rất nhiều thông tin mà không cần phân tích cú pháp đầu ra của một số tệp thi hành Linux.

+1

Cảm ơn rất nhiều, đó là những gì tôi cần. Cảm ơn tất cả vì sự hỗ trợ của bạn. – ipkiss

+0

làm thế nào về thực sự bao gồm tên của chức năng đó trong câu trả lời của bạn, thay vì ẩn nó trong liên kết? – Alnitak

+0

đã được sửa. thời gian dài kể từ khi tôi ở trên SO. cảm ơn! – INS

3

này nên làm:

system("uname -r"); 

EDIT: Loại man uname trong một thiết bị đầu cuối để có được danh sách các tùy chọn, bạn có thể sử dụng với uname

+6

Điều này chỉ in thông tin về đầu ra tiêu chuẩn. Để sử dụng nó trong chương trình, hãy sử dụng tốt hơn cuộc gọi hệ thống. –

7

Bạn có thể muốn thử sử dụng uname chức năng.

0

Nhìn vào this bài viết về cách thức dựa trên trình bao lấy thông tin hạt nhân. Bạn có thể chạy tất cả điều này một cách phù hợp bằng cách sử dụng lệnh system(). Nhưng tôi giả định rằng sẽ không đủ trong trường hợp của bạn. Bạn sẽ cần phải phân tích cú pháp đầu ra của vỏ. Do đó, hãy sử dụng cuộc gọi popen().

0

Hoặc bạn có thể đọc/proc/phiên bản, nhưng điều này không tốt bằng cách gọi uname (2) trực tiếp. uname (2) tự nhiên hơn đối với C.

Các vấn đề liên quan