我想在 a 下创建一个文件/proc/driver
目录。我想使用像这样的宏proc_root_driver
(或提供的其他内容)而不是显式使用“driver/MODULE_NAME”。我用create_proc_entry
:
struct proc_dir_entry *simpleproc_fops_entry;
simpleproc_fops_entry = create_proc_entry(MODULE_NAME, 0400, NULL /* proc_root_dir */);
谷歌搜索后,我找到了使用建议proc_root_driver
,但是当我使用它时,我收到错误
该函数中未声明 proc_root_driver
并且,proc_root_driver
在 linux/proc_fs.h 中不可用。
我试图声明这样的结构:
struct proc_dir_entry proc_root;
struct proc_dir_entry *proc_root_driver = &proc_root;
编译错误消失了,但文件没有出现在/proc/driver
or /proc
。我怎样才能创建一个条目/proc
?
查看 proc_fs.h,proc_root_driver 定义为:
extern struct proc_dir_entry *proc_root_driver;
只要启用 CONFIG_PROC_FS 即可。如果您在配置内核时选择了 CONFIG_PROC_FS,您应该能够按照您自己的建议使用它,即:
#include <linux/proc_fs.h>
struct proc_dir_entry * procfile
procfile = create_proc_entry("myprocfile", 0400, proc_root_driver);
如果这不起作用,请检查您是否设置了 CONFIG_PROC_FS。为了确保这一点,您可以使用 -E 选项编译源文件,并检查 create_proc_entry 调用是否包含非 NULL 参数作为最后一个参数。如果它是 NULL,或者根本不存在调用,则 CONFIG_PROC_FS 未启用。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)