struct proc_dir_entry *next, *parent, *subdir;//parent:指向父目录的指针,subdir:指向一个目录中的第一个子数据项,next:将目录下的所有常见数据项都集成到一个单链表中 void *data;//作为read_proc,write_proc的参数传递 read_proc_t *read_proc;//指向的函数支持从内核读取数据 write_proc_t *write_...
proc文件系统也有自己的组织结构,那就是proc_dir_entry结构,所有属于proc文件系统的文件,都对应一个proc_dir_entry结构,并且在VFS需要读取proc文件的时候,把这个结构和VFS的inode建立链接(即由inode->u.generic_ip指向该prc_dir_entry结构)。
struct proc_dir_entry *next, *parent, *subdir; void *data; read_proc_t *read_proc; write_proc_t *write_proc; atomic_t count; int pde_users; spinlock_t pde_unload_lock; struct completion *pde_unload_completion; struct list_head pde_openers; }; 在注册entry的时候,如果提供read_proc,读...
struct proc_dir_entry *next, *parent, *subdir; void *data; read_proc_t *read_proc; write_proc_t *write_proc; atomic_t count; int pde_users; spinlock_t pde_unload_lock; struct completion *pde_unload_completion; struct list_head pde_openers; }; 在注册entry的时候,如果提供read_proc,读...
通过一个struct proc_dir_entry的元素,在/proc中建立文件,如下: struct proc_dir_entry * entry = create_proc_entry(“scullseq”,0,NULL)。参数的内容和read_proc,第一个参数表示文件名,第二个参数表示文件属性,对于只读方式为0,第三个参数表示文件路径,NULL表示缺省路径,即/proc。
(1)调用create_proc_entry创建一个struct proc_dir_entry。 (2)对创建的struct proc_dir_entry进行赋值:read_proc,mode,owner,size,write_proc 等等。 5.实例一 #include<linux/kernel.h> #include<linux/init.h> #include<linux/proc_fs.h> #define procfs_name "proctest" // /proc目录下创建的文件名...
struct proc_dir_entry *next, *parent, *subdir;void *data;read_proc_t *read_proc;write_proc_t *write_proc;atomic_t count;int pde_users;spinlock_t pde_unload_lock;struct completion *pde_unload_completion;struct list_head pde_openers;};在注册entry的时候,如果提供read_proc,读⽂件时调⽤...
除了保存该虚拟文件的基本信息外,该结构中还有read_proc和write_proc两个字段,下文中将有详细说明。2.1创建目录/proc文件系统中创建一个目录对应的函数接口如下: struct proc_dir_entry *proc_mkdir(const char *name,struct proc_dir_entry *parent); 其中name为要创建的目录名;parent为这个目录的父目录,当要创建...
structproc_dir_entry*create_proc_read_entry(constchar*name,mode_tmode,structproc_dir_entry*base,read_proc_t*read_proc,void*data); 说明: name : 要创建的文件名; mode : 文件掩码,为 0 则按照系统默认的掩码创建文件。 base : 指定该文件所在的目录,如果为 NULL,则文件被创建在 /proc 根目录下。
void remove_proc_entry(const char *name, struct proc_dir_entry *parent);当在/proc文件系统下创建文件之后用户是怎么访问这个文件的,其实看到proc_create()函数的最后一个参数,传入的是一个file_operations结构体指针,其实,就是通过里面的read和write回调函数来实现的。下面我们来看一个具体的例子。在/proc...