【发布时间】:2014-11-10 02:02:39
【问题描述】:
我最近在尝试写一个linux内核模块。
我需要创建一个 proc 文件。
根据网上的linux交叉引用文件,proc_dir_entry应该在fs/proc/internal.h。
但是我的 Ubuntu 14.04 给我“没有这样的文件或目录”
uname -r:
3.13.0-29-generic
【问题讨论】:
-
是的,那是exactly where it is。你面前有未解压的内核源代码吗?你为什么要尝试使用这种“内部”结构?
-
我需要将指向该结构的指针传递给 proc_create()。但是我需要取消引用指针来初始化结构。这样的操作让我“取消引用不完整的类型”
-
显示您的代码。在
<linux/proc_fs.h>中有一个proc_dir_entry的前向声明 - 你不需要知道它的实际定义,因为你不需要初始化它的任何成员。 -
例如,请参阅
vmstat.h中的此示例。他们将NULL传递给parent,因为他们希望他们的条目位于/proc的根目录中。再次显示代码的相关部分。 -
我想我现在可以自己回答我的问题了。就像你说的,我们不需要知道实际的定义。我只需要设置在 fs.h 中定义的 file_operation 结构。我被这篇文章误导了tldp.org/LDP/lkmpg/2.6/html/lkmpg.html#AEN708
标签: c linux linux-kernel linux-device-driver