【发布时间】:2011-02-22 16:26:33
【问题描述】:
我正在尝试让用户级程序通过 /proc 与内核通信。
我按照tldp 上的说明操作,成功地创建了一个自定义 proc 文件,使用 insmod 动态加载它并从用户空间。
现在我的问题是如何从内核的另一部分访问 /proc 变量(它是一个字节缓冲区),比如系统调用基础架构?由于自定义的 proc 文件是动态加载和链接的,如何从静态编译的内核代码中引用它?
系统规格:在 MacBook Pro 13" (2009) 上运行 VMWare Fusion 的 Ubuntu 10.10。
编辑:相关代码(根据要求)-
procfile.c
//This function is called when the module is loaded
int init_module()
{
/* create the /proc file */
EXPORT_SYMBOL(procfs_buffer);
EXPORT_SYMBOL(procfs_buffer_size);
...
...
}
get_procvariable.c(在内核的另一部分)
//The buffer used to store character for this module
extern char * procfs_buffer;
//The size of the buffer
extern unsigned long procfs_buffer_size;
int get_procvariable(void)
{
.. do something
return procfs_buffer; // LD Error: Undefined reference
}
如果您需要更多详细信息,请在 cmets 中告诉我。提前致谢。
【问题讨论】:
-
回答了我自己的问题,从下面得到了一些提示:
标签: linux ubuntu kernel procfs