关于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
如果想在已存在的目录下创建文件该怎么弄呢 回复 1# ykai229
struct ctl_table_header *register_sysctl (const char *path, struct ctl_table *table);
页:
[1]