proc编程(proc_create_data).docxVIP

  • 9
  • 0
  • 约2.83千字
  • 约 3页
  • 2017-07-09 发布于河南
  • 举报
proc编程(proc_create_data)

proc_create_data函数:创建proc虚拟文件系统文件函数原型:staticinlinestructproc_dir_entry *proc_create_data(const char *name,mode_tmode, structproc_dir_entry *parent,conststructfile_operations *proc_fops, void *data){returnNULL;}参数1:name为你要建立的文件参数2:mode为建立的文件所拥有的读写等权限参数3:parent为你要在哪个文件夹下建立名字为name的文件,如:init_net.proc_net是要在/proc/net/下建立文件参数4:proc_fops为structfile_operations *指针参数5:data保存似有数据的指针,如不要为NULLtest_main.c:#include?linux/init.h?#include?linux/module.h?#include?linux/types.h?#include?linux/slab.h?#include?linux/fs.h?#include?linux/proc_fs.h?#include?linux/seq_file.h?#include?net/net_namespace.h?#include?linux/mm.h?MODULE_LICENSE(GPL);?struct?_DATA_INFO{?????int?data1;?????int?data2;?};?static?struct?_DATA_INFO?data_info[2];?/*?PROC?stuff?*/?static?void?*dl_seq_start(struct?seq_file?*s,?loff_t?*pos)?{?????static?unsigned?long?counter?=?0;?????if?(?*pos?==?0?)?????{?????????return?counter;?????}?????else?????{?????????*pos?=?0;?????????return?NULL;?????}?}?static?void?*dl_seq_next(struct?seq_file?*s,?void?*v,?loff_t?*pos)?{?????return?NULL;?}?static?void?dl_seq_stop(struct?seq_file?*s,?void?*v)?{?}?static?int?dl_seq_show(struct?seq_file?*s,?void?*v)?{?????struct?proc_dir_entry?*pde?=?s-private;?????struct?_DATA_INFO?*info?=?pde-data;?????seq_printf(s,?%d----%d,info-data1,info-data2);?????return?0;?}?static?struct?seq_operations?dl_seq_ops?=?{?????.start?=?dl_seq_start,?????.next?=?dl_seq_next,?????.stop?=?dl_seq_stop,?????.show?=?dl_seq_show?};?static?int?dl_proc_open(struct?inode?*inode,?struct?file?*file)?{?????int?ret?=?seq_open(file,?dl_seq_ops);?????if?(!ret)?{?????struct?seq_file?*sf?=?file-private_data;?????sf-private?=?PDE(inode);?????}?????return?ret;?}?static?const?struct?file_operations?dl_file_ops?=?{?????.owner?=?THIS_MODULE,?????.open?=?dl_proc_open,?????.read?=?seq_read,?????.llseek?=?seq_lseek,?????.release?=?seq_release?};?void?init_mem(void)?{?????data_info[0].inflow=1;?????data_info[0].upflow=2;?????proc_create_data(proc_test1,?0,?init_net.proc_net,?dl_file_ops,?d

文档评论(0)

1亿VIP精品文档

相关文档