我正在做一个Linux内核模块和我想知道是否有办法来动态地生成proc中的文件,并以合理的方式使用它们。动态生成proc文件?
我没有问题创建一个结构与list_head
并从那里,但我最终的问题是,我想有完全相同的函数执行不同的变量。也就是说,我只是想有一个write_proc
即最终写入内核内存不同的缓冲区为每个文件(和read_proc
从同一个读取)。
我遇到这种困难的原因是,似乎读取功能protoypes /从proc中的文件写入没有允许这种行为:
int read_proc(char *buf, char **start, off_t offset, int count,
int *eof, void *data) {
int write_proc(struct file *file, const char *buf,
unsigned long count, void *data) {
现在,我可以静态地创建了一堆功能,只是确保我分配的足够,但我想知道是否有更优雅的解决方案。
这里是我怎么想它在用户态看一个例子(我没有代码MWE,因为我不知道在哪里甚至开始):
$ echo "file1" > /proc/mydir/create
$ echo "file2" > /proc/mydir/create
$ ls /proc/mydir
create file1 file2
$ echo "1" > /proc/mydir/file1
$ echo "5" > /proc/mydir/file2
$ cat /proc/mydir/file*
1
5
难道我刚刚经历过的困境?
我正在寻找非常通用的兼容性(2.6.33+)
我建议通过我提供的链接查看/ proc的实现。它非常简单,而且信息丰富。实际上,阅读并使用它比阅读不完整的文档或过时的博客文章更容易。 – Shahbaz 2013-04-22 13:33:19
非常感谢,对于接受答案的延误感到抱歉,我最近没有太多时间来玩这个。出于某种原因,即使它正在把我凝视在脸上,“数据”事件完全滑落了我的脑海!再次感谢所有的细节和链接! – zje 2013-04-29 02:49:50