2

我想在内核模块中保存一些信息。我在stackoverflow中看到了与我类似的问题,但是我的问题略有不同。假设我正在使用此代码写入 /proc 文件。我应该如何在我的内核模块之一中调用它?我有一个名为的自定义内核模块mymodule,它不是其中的主文件(没有 init_module()),下面的函数被调用。在这种情况下,函数的输入值应该是什么file?基本上可以在内核模块中创建 /proc 文件吗?

int procfile_write(struct file *file, const char *buffer, unsigned long count, void *data)

4

1 回答 1

5

绝对可以在内核模块中添加 proc 条目,但您可能误解了内核中文件处理的工作原理。

在 proc 中创建文件时,实际上并没有像在用户空间中那样“创建”文件。您正在注册一些在用户空间程序请求您的文件时调用的回调。

这意味着,当用户空间程序请求读取时,您的文件读取回调必须提供数据。当用户空间程序请求写入时,您的文件写入回调必须处理它。

如果您想像使用传统文件一样使用它来存储信息,则必须分配所需的空间并让您的读取回调从那里复制数据。

于 2013-07-12T23:50:03.860 回答