procfs.c~

来自「在Linux下实现文件的拷贝」· C~ 代码 · 共 67 行

C~
67
字号
#include <linux/kernel.h>#include <linux/module.h>#if CONFIG_MODVERSIONS == 1#define MODVERSIONS#include </zhangjian/ostask/linux-2.6.18/include/config/module/srcversion/modversions.h>#endif#include <linux/proc_fs.h>#ifndef KERNEL_VERSION#define KERNEL_VERSION(a,b,c) ((a)*65535+(b)*256+(c)#endifint procfile_read(char *buffer,char **buffer_location,off_t offset,int buffer_length,int zero){   int len;   static char my_buffer[80];   static int count = 1;   if(offset > 0)     return 0;    len = sprintf(my_buffer,"For the %d%s time,go away!\n",count,                        (count %100 > 10 && count %100 < 14)?"th":                           (count % 10 == 1)? "st":                              (count % 10 == 2)? "nd":                                 (count % 10 == 3)?"rd":"th");   count++;   *buffer_location = my_buffer;   return len;}struct proc_dir_entry Our_Proc_File={         0 ,        4 ,   "test",   S_IFREG | S_IRUGO,        1 ,        0 ,        0 ,        80 ,   NULL ,   procfile_read ,   NULL};int init_module(){      # if LINUX_VERSION_CODE > KERNEL_VERSION(2,2,0)return proc_register(&proc_root,&Our_Proc_File);#else   return proc_register_dynamic(&proc_root,&Our_Proc_File);#endif}void clean_module(){     proc_unregister(&proc_root,&Our_Proc_File.low_ino);}   

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?