1:建立proc文件夾
struct proc_dir_entry *proc_mkdir(const char *name, struct proc_dir_entry *parent);
參數1:name就是要建立的文件夾名稱。
參數2:parent是要建立節點的父節點。也就是要在哪一個文件夾之下建立新文件夾,須要將那個文件夾的node
(1):這個例子將建立一個proc入口使讀取訪問。我想你能夠經過改變使其餘類型的訪問的mode
傳遞給該函數。我沒有經過一個父目錄下有沒有必要。結構file_operations
在這裏您設置您的閱讀和寫做的回調。linux
struct proc_dir_entry *proc_file_entry; static const struct file_operations proc_file_fops = { .owner = THIS_MODULE, .open = open_callback, .read = read_callback, }; int __init init_module(void){ proc_file_entry = proc_create("proc_file_name", 0, NULL, &proc_file_fops); if(proc_file_entry == NULL) return -ENOMEM; return 0; }
您能夠檢查這個例子的更多細節: 但願這會有所幫助。 函數
#include <linux/module.h> #include <linux/proc_fs.h> #include <linux/seq_file.h> static int hello_proc_show(struct seq_file *m, void *v) { seq_printf(m, "Hello proc!\n"); return 0; } static int hello_proc_open(struct inode *inode, struct file *file) { return single_open(file, hello_proc_show, NULL); } static const struct file_operations hello_proc_fops = { .owner = THIS_MODULE, .open = hello_proc_open, .read = seq_read, .llseek = seq_lseek, .release = single_release, }; static int __init hello_proc_init(void) { proc_create("hello_proc", 0, NULL, &hello_proc_fops); return 0; } static void __exit hello_proc_exit(void) { remove_proc_entry("hello_proc", NULL); } MODULE_LICENSE("GPL"); module_init(hello_proc_init); module_exit(hello_proc_exit);