首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在/proc/net中创建ProcFS条目

在/proc/net中创建ProcFS条目
EN

Stack Overflow用户
提问于 2013-05-24 01:22:27
回答 2查看 3.3K关注 0票数 2

我尝试从内核模块在/proc/net中创建一个条目,如下所示:

代码语言:javascript
复制
struct file *filp = filp_open("/proc/net", O_RDONLY, 0);
struct proc_dir_entry *parent = PDE(filp->f_dentry->d_inode);
filp_close(filp, NULL);

proc_file = create_proc_entry("test", 0644, parent);

粗略地摘自here

为什么它创建的条目像/proc/test而不是/proc/net/test

(注意:我也想使用create_proc_entry,而不是proc_create。)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-05-25 03:31:31

在最近的内核中,你再也找不到create_proc_entry()了,它被完全移除了。看看https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=80e928f7ebb958f4d79d4099d1c5c0a015a23b93吧。因此,您需要使用proc_create()。并且,将->proc_net作为父目录条目传递。看看这个:https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/net/ipv4/proc.c#n479,这会让你有一个清晰的想法。

如果您使用的不是最新的内核,那么可以使用create_proc_entry(),因此可以考虑使用create_proc_entry(),而不是proc_create()。但是,我认为最好的方法是使用当前的方法。因为你不会得到最新内核对create_proc_entry()的支持。

票数 2
EN

Stack Overflow用户

发布于 2013-05-28 06:19:58

我认为这样做的方法是:

proc_file = create_proc_entry("test",0644,init_net.proc_net);

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16720168

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档