ykai229 发表于 2014-04-25 10:29

关于sysctl在已存在目录下创建文件的问题

本帖最后由 ykai229 于 2014-04-25 10:43 编辑

目前使用的内核版本为3.12,这个版本的sysctl好像是改了,使用register_sysctl_table注册的时候如果路径包含/proc/sys下已存在的路径的话,会报错,比如在/proc/sys/net/ipv4下注册一个文件static ctl_table table1[] = {{
                                  .procname ="arg",
                                  .data = &sysctl_maxlen,
                                  .maxlen = sizeof(sysctl_maxlen),
                                  .mode = 0644,
                                  .child = NULL,
                                  .proc_handler = proc_dointvec,
                               },
                                                           {0}
                                                           };

static ctl_table dir_table1[] = {
                                                {
                                       .procname ="ipv4",
                                            .mode = 0555,
                                        .maxlen= 0,
                                           .child = table1,
                                 },
                                       {0}
                                   };

static ctl_table root_table1[] = {
                                                {
                                                        .procname ="net",
                                                        .mode = 0555,
                                                      .maxlen = 0,                                                                                       
                                                        .child = dir_table1,
                                                },
                                                {0}
                                        };
sysctl_header = register_sysctl_table(root_table1);
插入内核模块的时候
提示:sysctl could not get directory: /net//ipv4 -20
然后下面是Call Trace
如果想在已存在的目录下创建文件该怎么弄呢

ThomasLiu83 发表于 2015-05-12 20:07

回复 1# ykai229


    struct ctl_table_header *register_sysctl (const char *path, struct ctl_table *table);

页: [1]
查看完整版本: 关于sysctl在已存在目录下创建文件的问题