Nói chung bạn không thể làm điều đó ngay từ không gian người dùng. procfs là hạt nhân báo cáo trạng thái quá trình của nó cho bạn. Vì vậy, nếu bạn muốn làm một cái gì đó như thế này, bạn muốn
a) phải tạo mô-đun hạt nhân cho phép bạn liên lạc nội dung với nó b) kích hoạt truy xuất nội dung thông qua tín hiệu của một số loại.
Vì vậy, nếu bạn thực sự muốn thực hiện việc này. Tôi sẽ đề xuất đường dẫn sau:
1) Viết mô-đun hạt nhân có thể giao tiếp trạng thái chương trình. Hãy gọi nó là kpsmod cho cuộc thảo luận của chúng tôi.
2) Giao tiếp với không gian người dùng có giao tiếp với quy trình người dùng thông qua một số cơ chế (nói liên kết net) để bắt đầu một số quy trình đăng ký, đăng ký địa chỉ biến. Chương trình không gian người dùng cho mô-đun biết rằng nó quan tâm đến việc "xuất khẩu" chính nó ra trên một tín hiệu (nói SIGHUP hoặc SIGUSR1); cũng có thể lập trình được. Chuyển tên, địa chỉ và kích thước cần đọc (với thông tin loại nếu cần). Nếu biến nằm trên ngăn xếp, biến đó sẽ bị từ chối.Chỉ cho phép các ký hiệu có thể truy cập trên toàn cầu cho điều này (để đơn giản)
3) Bạn thậm chí có thể nghĩ về việc truy cập ngăn xếp ptrace cho quá trình tại thời điểm proc_read của biến cụ thể.
4) sau đó các mô-đun hạt nhân nên tạo một/proc/kpsmod // vars * cho mỗi biến và khi biến được đọc
5) vào đọc đổ nội dung bộ nhớ qua proc (có khả năng định dạng)
và thì đấy :-) bạn có hiệu quả mong muốn.
Nguồn
2011-11-19 09:05:14