Linux动态链接库编程——析构和构造方法

dlopen打开一个动态链接库时,它会首先调用函数init做一些初始化的操作,结束时执行finit进行收尾操作。但是,我们编写动态链接库时候不能覆盖init和finit,不过可以利用GCC的扩展来达到相应的效果:

__attribute ((constructor)) void init(void)

{

    printf("%s\n", __func__);

}

__attribute ((destructor)) void fini(void)

{

    printf("%s\n", __func__);

}