linux清理函数

每个非试验性的模块也要求有一个清理函数, 它注销接口, 在模块被去除之前返回所有资 源给系统. 这个函数定义为:

 

static void   exit cleanup_function(void)

{

/* Cleanup code here */

}

module_exit(cleanup_function);

 

清理函数没有返回值, 因此它被声明为 void. exit 修饰符标识这个代码是只用于模块 卸载( 通过使编译器把它放在特殊的 ELF 段). 如果你的模块直接建立在内核里, 或者如 果你的内核配置成不允许模块卸载, 标识为 exit 的函数被简单地丢弃. 因为这个原因, 一个标识  exit 的函数只在模块卸载或者系统停止时调用; 任何别的使用是错的. 再一 次, moudle_exit 声明对于使得内核能够找到你的清理函数是必要的.

 

如果你的模块没有定义一个清理函数, 内核不会允许它被卸载.

posted @ 2019-07-05 15:04  樊伟胜  阅读(310)  评论(0编辑  收藏  举报