分类: LINUX
2013-04-24 22:04:48
#include
二、创建与删除proc文件:
<一>创建普通文件:
1.创建不可读写的普通文件
struct proc_dir_entry* create_proc_entry (const char *name,mode_t
mode,struct proc_dir_entry *parent);
@name :要创建的文件名
@mode :要创建的文件的属性 默认0755
@parent :这个文件的父目录
2.创建只读的普通文件
struct proc_dir_entry * create_proc_read_entry
(const char *name,mode_t mode,struct proc_dir_entry
*parent,read_proc_t* read_proc,void *data);
@name :要创建的文件名
@mode :要创建的文件的属性 默认0755
@parent :这个文件的父目录
@read_proc :当用户读这个文件时,内核调用的函数
@data :传给read_proc的参数
3.创建目录
struct proc_dir_entry * proc_mkdir (const char
*name,struct proc_dir_entry *parent);
@name :要创建的目录名
@parent :这个目录的父目录
4.删除文件或目录
void remove_proc_entry (const char *name,struct
proc_dir_entry *parent);
@name :要删除的文件或目录名
@parent
:所在的父目录
<二>、读写proc文件
为了能让用户读写添加的proc文件,需要挂接上读写回调函数:read_proc和write_proc
例:
struct proc_dir_entry * entry;
entry—>read_proc =
read_proc_foo;
entry—>write_proc =
write_proc_foo;
1.读函数read_func
int read_func (char *buffer,char **stat,off_t
off,int count,int *peof,void *data);
@buffer
:把要返回给用户的信息写在buffer里,最大不超过PAGE_SIZE(一般4K)
@stat :一般不使用
@off :buffer的偏移量
@count :用户要取的字节数
@peof :读到文件尾时,把peof指向的位置置1
@data :被多个proc文件定义为读时,通过data传递参数
2.写函数write_func
int write_func (struct file *file,const char
*buffer,unsigned long count,void *data);
@file :该proc文件对应的file结构,一般忽略。
@buffer :待写的数据所在的位置
@count :待写数据的大小
@data :同read_func