当前位置: 首页 > news >正文

常州做网站哪里好微信公众号推文模板素材

常州做网站哪里好,微信公众号推文模板素材,php网站开发 vip,网站建设对比分析Sysctl是一种用户应用来设置和获得运行时内核的配置参数的一种有效方式#xff0c;通过这种方式#xff0c;用户应用可以在内核运行的任何时刻来改变内核的配置参数#xff0c;也可以在任何时候获得内核的配置参数。通常#xff0c;内核的这些配置参数也出现在proc文件系统…Sysctl是一种用户应用来设置和获得运行时内核的配置参数的一种有效方式通过这种方式用户应用可以在内核运行的任何时刻来改变内核的配置参数也可以在任何时候获得内核的配置参数。 通常内核的这些配置参数也出现在proc文件系统的/proc/sys目录下用户应用可以直接通过这个目录下的文件来实现内核配置的读写操作。使用register_sysctl_table方式实现内核数据交互就不得不用提到struct ctl_table。下面来介绍一下这个结构体。1 结构体ctl_table每一个sysctl条目对应一个 struct ctl_table 结构在该结构体定义在文件./include/linux/sysctl.h中定义及解释如下/* A sysctl table is an array of struct ctl_table: */[cpp] view plaincopyprint?struct ctl_table  {      const char *procname; /* Text ID for /proc/sys, or zero */      void *data;      int maxlen;      mode_t mode;      struct ctl_table *child;      struct ctl_table *parent; /* Automatically set */      proc_handler *proc_handler; /* Callback for text         formatting */      void *extra1;      void *extra2;  };  struct ctl_table {const char *procname; /* Text ID for /proc/sys, or zero */void *data;int maxlen;mode_t mode;struct ctl_table *child;struct ctl_table *parent; /* Automatically set */proc_handler *proc_handler; /* Callback for text formatting */void *extra1;void *extra2; };成员变量解释const char *procname; /* 表示在proc/sys/下显示的文件名称 */ void *data;           /* 表示对应于内核中的变量名称    */ int maxlen;           /* 表示条目允许的最大长度         */ mode_t mode;             /* 条目在proc文件系统下的访问权限 */ struct ctl_table *child; struct ctl_table *parent; /* Automatically set */ proc_handler *proc_handler; /*回调函数proc_dointvec/proc_dostring */ void *extra1; void *extra2;字段maxlen它主要用于字符串内核变量以便在对该条目设置时对超过该最大长度的字符串截掉后面超长的部分.字段proc_handler表示回调函数,对于整型内核变量应当设置为proc_dointvec而对于字符串内核变量则设置为 proc_dostring。 Sysctl 条目也可以是目录此时 mode 字段应当设置为 0555否则通过 sysctl 系统调用将无法访问它下面的 sysctl 条目child 则指向该目录条目下面的所有条目对于在同一目录下的多个条目不必一一注册用户可以把它们组织成一个 struct ctl_table 类型的数组然后一次注册就可以。2 注册register_sysctl_table注册sysctl条目使用函数register_sysctl_table函数原型如下struct ctl_table_header *register_sysctl_table(struct ctl_table *table)第一个参数为定义的struct ctl_table结构的sysctl条目或条目数组指针3 卸载unregister_sysctl_table当模块卸载时需要使用函数unregister_sysctl_table其原型void unregister_sysctl_table(struct ctl_table_header * header)其中struct ctl_table_header是通过函数register_sysctl_table注册时返回的结构体指针。4 实例[cpp] view plaincopyprint?/**********************************************   * Author: lewiyonhotmail.com   * File name: sysctl_example.c   * Description: sysctl example   * Date: 2013-04-24   *********************************************/    #include linux/module.h  #include linux/init.h  #include linux/kernel.h  #include linux/sysctl.h    static int sysctl_kernusr_data  1024;    static int kernusr_callback(ctl_table *table, int write,          void __user *buffer, size_t *lenp, loff_t *ppos)  {      int rc;      int *data  table-data;        printk(KERN_INFO original value  %d\n, *data);        rc  proc_dointvec(table, write, buffer, lenp, ppos);      if (write)          printk(KERN_INFO this is write operation, current value  %d\n, *  data);        return rc;  }    static struct ctl_table kernusr_ctl_table[]  {      {          .procname        kernusr,          .data            sysctl_kernusr_data,          .maxlen          sizeof(int),          .mode            0644,          .proc_handler    kernusr_callback,      },      {          /* sentinel */      },  };    static struct ctl_table_header *sysctl_header;    static int __init sysctl_example_init(void)  {      sysctl_header  register_sysctl_table(kernusr_ctl_table);      if (sysctl_header  NULL) {          printk(KERN_INFO ERR: register_sysctl_table!);          return -1;      }        printk(KERN_INFO sysctl register success.\n);      return 0;    }    static void __exit sysctl_example_exit(void)  {      unregister_sysctl_table(sysctl_header);      printk(KERN_INFO sysctl unregister success.\n);  }    module_init(sysctl_example_init);  module_exit(sysctl_example_exit);  MODULE_LICENSE(GPL);
http://www.pierceye.com/news/178654/

相关文章:

  • 南昌市公司网站建设品牌建设浅谈
  • 网站实现留言功能吗制作视频用什么app
  • 聊城企业网站建设公司网页版wordpress教程视频
  • 网上购物的网站开发背景wordpress more标签使用教程
  • 多语言网站建设方案新建网站的价格
  • 企业网站服务器的选择企业网站建设市场分析
  • 阜阳做网站的公司网页制作自学教程
  • 阿里巴巴吧网站怎么做网页设计师属于什么部门
  • 望京网站建设公司红酒专业网站建设
  • 兰州市城市建设设计院网站游戏网站搭建需要多少钱
  • 网站建设易客vi设计公司 深圳
  • 白银网站运行网站建设客户去哪里找
  • 建湖网站设计云浮网站设计
  • 招聘网站的简历可以做几份vue可以做pc网站吗
  • 高端个性化网站建设版面设计经历了哪几个阶段
  • wordpress本地图片一个网站完整详细的seo优化方案
  • 试玩网站怎么做5g影视
  • 宝宝投票网站怎么做网站首页添加代码
  • 网站开发分类网站建设的目标
  • 做旅游的网站有哪些专业做鞋子的网站
  • 深圳旅游网站开发新余网络推广
  • 平台网站建设ppt雪梨直播
  • 建设外贸类网站互联网下的网络营销
  • 网站开发需要的知识WordPress要什么环境
  • wordpress 多站点设置欧洲c2c平台
  • 赤峰网站开发公司做网站的公司怎么推销
  • 深圳福田区区住房和建设局网站wordpress 小程序开发
  • 网站建设与推cctv-10手机网站模板用什么做
  • 网站的建站方案网络科技有限公司
  • ps做图游戏下载网站有哪些内容广州网站(建设信科网络)