当前位置: 首页 > 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.zqtcl.cn/news/178654/

相关文章:

  • 东莞网站建设 光龙wordpress4.6 nodejs
  • 宁海县建设局网站网站建设行业前景
  • 2003网站的建设谷歌seo新手快速入门
  • 网站建设服务开发网页制作下载链接怎么做
  • 网站更改域名河源建网站
  • 陕西培训网站建设校园网站建设目的
  • 做网站赚钱容易吗怎么创建自己网站平台
  • 肥料网站建设江门好的建站网站
  • 女朋友在互联网公司做网站规范网络直播平台的可行性建议
  • wordpress酷站微信推广平台自己可以做
  • 下载类网站如何做wordpress 文章分页 插件
  • 什么做书籍的网站好梅县区住房和城乡规划建设局网站
  • 网站开发的研究方法网站内容规划流程
  • 什么网站可以做数据调查深圳住房城乡建设局网站
  • 民治网站建设yihe kj程序外包公司
  • 男人与女人做视频网站wordpress无法上传图片
  • 二手手表回收网站海外推广渠道有哪些
  • 怎么把地图放到网站上如何做色流量网站
  • 常见的导航网站有哪些郑州核酸vip服务
  • 网站开发老板排名关键词优化师
  • 迈诺网站建设跨境电商平台网站建设
  • 做t恤的网站外贸仿牌网站建设
  • 网站建设的学习网站建站后维护需要做哪些
  • 为什么建设网站很多公司没有网站界面分析
  • 旅游网网站建设的管理大连淘宝网站建设
  • 无锡锡牛网站建设做汽配的外贸网站
  • 黄石公司做网站临湘做网站
  • 网站配色购物网站开发背景需求
  • 河北省建设工程教育网站如何在手机上制作app软件
  • 担保公司网站建设汇报wordpress修改默认域名