请问不同的进程进入同一个驱动时,他们的内核空间是不是相同的?
如先有一个进程进入了一个驱动,初始化了里面的一个静态的数据a,然后睡眠,等待条件
之后有另一个进程打开进入了这个驱动,来取数据a,是不是在这里取到的数据a就是在上面那个进程中初始化了的值?
内核空间是共享的,任何进程都共享相同的内核空间,拥有自己的用户空间。
所以,内核编程,也就是驱动,要考虑可重人等问题。
内核中全局的静态数据是可以共享访问的。
那是不是要是先前那个驱动关掉了,后面那个驱动再去读时,那个静态数据里就是空的呢?
还有在写demo测试的时候MODE_INC_USE_COUNT显示没有定义,请问这个宏是包含在哪个头文件里
?
对不起,我分不多,没办法,回答完这个我就给分了,谢谢~~
#include<linux/module.h>包含以下宏
MOD_INC_USE_COUNT
MOD_DEC_USE_COUNT
MOD_IN_USE
驱动是可以动态加载的毕业论文 ,只有加载了其定义的变量才有一页,也就是能输出。如果卸载了,肯定就没了。
你的问题可能就是这个问题。
MODE_INC_USE_COUNT
2.4 可能定义在/usr/include/linux/module.h
2.6要用 try_module_get(THIS_MODULE)和module_put(THIS_MODULE)
你试试看,我也没用过