/proc文件系统是一种特殊的,由软件创建的文件系统,内核通过它向用户输出信息; /proc下面的每个文件都绑定一个内核函数,当用户读取其中文件时,内核函数会动态生 成文件的内容。例如,/proc/modules列出的是当前系统中已加载模块;linux中的很多工 具都是通过/proc来获取它们所需要的信息,如ps,top等 /proc文件可以通过下面函数创建:
struct proc_dir_entry * proc_mkdir(const char *name, struct proc_dir_entry *parent) 创建名字为name的文件目录, 其中,name 为指定文件目录路径及名字, parent为 创建文件的上一级路径,如果设为null,则表示在/proc的根路径下创建; struct proc_dir_entry * proc_create(const char *name, mode_t mode, struct proc_dir_entry *parent, const struct file_operations *proc_fops) 在指定的parent目录下创建名字为name,权限为mode,file_operations为proc_fops的文件; /proc文件通过下面函数接口删除: void remove_proc_entry(const char *name, struct proc_dir_entry *parent) 删除parent指定目录下的name文件;name可以是一般文件也可以是目录文件;
创建/proc/bus/input/目录文件,并在该目录下生成handlers文件; struct proc_dir_entry *entry; entry = proc_mkdir("bus/input", NULL); proc_create("handlers", 0,entry, &proc_fops); 删除已经创建文件: remove_proc_entry("handlers", entry); remove_proc_entry("bus/input", NULL);
|