我写了两个模块(编译、加载都正常):
(1)global.ko(读写globalvar变量)
其中定义有globalvar,并做了导出供hello模块读取用,定义如下:
int globalvar= 0;
EXPORT_SYMBOL(globalvar);
(2)hello.ko(读取globalvar)
其中定义如下:
void __init hello_init()
{
extern int globalvar; //声明导出的globalvar变量
printk("var=%d\n",globalvar); //读取global模块的globalvar值
globalvar = 89; //重新设置globalvar值供golbal模块读取
……
}
先insmod ./global.ko后,再insmod ./hello.ko
insmod到内核后global模块读写正常(比如往globalvar写入23,读出23),但是在hello模块中读出的globalvar的却不是23。类似的,hello模块中设置的globalvar值89在global模块中也无法正确读取。
我的本意是想让一个模块写入globalvar的值另一个模块可以正确的读出。望高手不吝赐教。谢谢!