__init和__exit属性的用法

San*_*ndy 6 operating-system kernel kernel-module linux-device-driver

如果在初始化和退出模块中使用__init和__exit属性会发生什么,如果我不使用它们会发生什么.示例如下所示.

使用属性

static __init int myinit(void)
{}
static __exit void myexit(void)
{}
Run Code Online (Sandbox Code Playgroud)

Witout属性

static int myinit(void)
{}
static void myexit(void)
{}
Run Code Online (Sandbox Code Playgroud)

Gau*_*aju 5

@Sandy,__ init宏导致init函数完成内置驱动程序后,将放弃init函数并释放其内存(vmalloc)。当模块内置在内核中时,__ exit宏会导致该功能被忽略。__init和__exit都不适合LKM。还要通过这些链接 __init在Linux内核代码中是什么意思? http://amar-techbits.blogspot.in/2012/08/understanding-macro-init-and-exit-in.html