我正在尝试使用create_proc_entry()函数在/ proc下创建一个目录。当我尝试编译代码时,我收到以下错误:隐式声明函数'create_proc_entry'。
这些是我在.c文件中包含的标题:
#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/proc_fs.h>
#include <linux/string.h>
#include <linux/vmalloc.h>
#include <linux/uaccess.h>
我正在尝试编译的机器上的内核版本是:3.10.33-g7954807-dirty
我是否缺少调用此方法所需的任何标头?或者我的内核版本中不推荐使用该方法吗?
答案 0 :(得分:21)
/ proc filesystem已在3.10中重构,您要查找的功能已被删除,您应该使用功能齐全的proc_create
函数系列。请注意,签名是不同的。
3.10版本: http://lxr.free-electrons.com/source/include/linux/proc_fs.h?v=3.10
3.9版本: http://lxr.free-electrons.com/source/include/linux/proc_fs.h?v=3.9
您可以在Linux设备驱动程序4一书中找到有关使用全功能/执行功能的更多说明,或者,如果您想要更短的解决方案,请查看此链接(https://github.com/jesstess/ldd4/blob/master/scull/main.c),您可以在其中查看{{1 }} 已经用过。您不必设置结构的所有字段。