/***************** * proc文件系統 *****************/
(1)/proc文件系統的特點和/proc文件的說明
/proc文件系統是一種特殊的、由軟件創建的文件系統,內核使用它向外界導出信息,/proc系統只存在內存當中,而不占用外存空間。
/proc下面的每個文件都綁定于一個內核函數,用戶讀取文件時,該函數動態地生成文件的內容。也可以通過寫/proc文件修改內核參數
/proc目錄下的文件分析 /proc/$pid 關于進程$pid的信息目錄。每個進程在/proc 下有一個名為其進程號的目錄。例:$>strings -f /proc/[0-9]*/cmdline
(2)自行實現一個/proc文件
需包含頭文件<linux/proc_fs.h>,函數定義在/fs/proc/generic.c
a.在/proc下創建文件
調用create_proc_read_entry在/proc下創建新的文件
struct proc_dir_entry *create_proc_read_entry( const char *name, mode_t mode, struct proc_dir_entry *base, read_proc_t *read_proc, void * data)
b.卸載/proc下的文件
采用remove_proc_entry卸載proc文件
void remove_proc_entry( const char *name, struct proc_dir_entry *parent);
c.定義返回數據的函數
在進程讀取/proc文件時,內核會分配一個內存頁(即PAGE_SIZE個字節的內存塊),驅動將要寫的數據通過這個內存頁返回到用戶空間。
typedef int (read_proc_t)(char *page, char **start, off_t off,int count, int *eof, void *data);
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對VEVB武林網的支持。
新聞熱點
疑難解答