内核中针对proc文件系统的编程函数总结

内核中针对proc文件系统的编程函数总结

ID:32996488

大小:56.87 KB

页数:3页

时间:2019-02-18

内核中针对proc文件系统的编程函数总结_第1页
内核中针对proc文件系统的编程函数总结_第2页
内核中针对proc文件系统的编程函数总结_第3页
资源描述:

《内核中针对proc文件系统的编程函数总结》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、内核中针对proc文件系统的编程函数总结己有54438次阅读2008-10-1119:08个人分类:Linuxkernel关键词:proc内核函数一、头文件:#includevlinux/proc_fs.h>二、创建与删除proc文件:<一>创建普通文件:1•创建不可读写的普通文件/*此函数只负责在proc中创建一个只读文件,即能在proc中看到这个文件。**/structproc_dir_entry*create_proc_entry(constchar*name,mode_tmode,structproc_d

2、ir_entry*parent);@name:要创建的文件名@mode:要创建的文件的属性默认0755@parent:这个文件的父目录2•创建只读的普通文件/*和create_proc_entry基本一样。*只是为该文件挂接上读函数:read_proc(voiddata);**/structproc_dir_entry*create_proc_read_entry(constchar*namezmode_tmode,structproc_dir_entry*parentjead_p「oc_t*read_proc,

3、void*data);@name:要创建的文件名@mode:要创建的文件的属性默认0755@parent:这个文件的父目录@read_proc:当用户读这个文件时,内核调用的函数@data:传给read_proc的参数3•创建符号连接/*该函数在父目录parent下创建一个指向dest的连接name。*就像In:*#ln-sdestparent/name**/structproc_dir_entry*proc_symlink(constchar*name,structproc_dir_entry*parent,c

4、onstchar*dest);@name:要创建的文件名@parent:这个文件的父目录@dest:符号连接的目标文件4•创建目录/*该函数在父目录parent下创建一个目录name**/structproc_dir_entry*proc_mkdir(constchar*name,structproc_dir_entry*parent);@name:要创建的目录名@parent:这个目录的父0录1•删除文件或目录/*这个函数从proc文件系统中删除一个文件或目录。*注意:1。是通过参数name,而不是通过创建时返

5、回的指针来删除的。*2。该函数不会递归删除目录下的文件。*3。data变量保存了分配的内存,要先释放对应内存,再删除该文件。**/voidremove_proc_entry(constchar*name,structproc_dir_entry*parent);@name:要删除的文件或目录名@parent:所在的父目录v二〉、读写proc文件为了能让用户读写添加的proc文件,需要挂接上读写回调函数:read_proc和write_proc例:structproc_dir_entry*entry;entry-&

6、gt;read_proc=read_proc_foo;entry->write_proc=write_proc_foo;1・读函数read_func/*该函数把耍写的信息写入buffer,最多不超过PAGE_SIZE**/intread_func(char*buffer;char**statzoff_toffjntcount’int*peof;void*data);@buffer:把要返冋给用户的信息写在buffer里,最大不超过PAGE_SIZE(一般4K)@stat:一般不使用@off:buffer的偏

7、移量@count:用户要取的字节数@peof:读到文件尾时,把peof指向的位置置1@data:被多个proc文件定义为读时,通过data传递参数2•写函数write_func/*该函数最多从buffer中读取count个字节的数据。*注意:buffer地址在用户空I'可,需要先用copy_from_user()把这些数据拷贝到内核中。**/intwrite_func(structfile*file,constchar*buffei;unsignedlongcount,void*data);@file:该proc

8、文件对应的file结构,一般忽略。@buffer:待写的数据所在的位置@count:待写数据的大小@data:同read_funcv三〉、seq_file编程接口include/linux/seq_file.h:structseq_file{char*buf;size_tsize;size_tfrom;sizetcount;loff_tindex;lofCtversion

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。