- 论坛徽章:
- 0
|
本帖最后由 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
如果想在已存在的目录下创建文件该怎么弄呢 |
|