我尝试从内核模块在/proc/net中创建一个条目,如下所示:
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。)
发布于 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()的支持。
发布于 2013-05-28 06:19:58
我认为这样做的方法是:
proc_file = create_proc_entry("test",0644,init_net.proc_net);
https://stackoverflow.com/questions/16720168
复制相似问题