如何在内核模块中创建/ proc文件?

时间:2013-07-12 23:23:00

标签: c file linux-kernel filesystems proc

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

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

1 个答案:

答案 0 :(得分:4)

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

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

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

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