__attribute__ ((constructor))指定的函数在共享库loading的时候调用,__attribute__ ((destructor))指定的函数在共享库unloading的时候调用。
1. 编写源码文件ktest.c如下.
#include <stdio.h>
__attribute__ ((constructor)) static void ktest_init(void);
__attribute__ ((destructor)) static void ktest_deinit(void);
void ktest_init(void)
{
printf("call ktest init./n");
}
void ktest_deinit(void)
{
printf("call ktest deinit./n");
}
void test1()
{
printf("call test1./n");
}
void test2()
{
printf("call test2./n");
}
void test3()
{
printf("call test3./n");
}
2. 编译为共享库libktest.so
gcc -fPIC -c ktest.c ### produce ktest.o.
gcc -shared -o libktest.so ktest.o ### produce libktes.so
3. 编写库调用文件calllib.c
#include <stdlib.h>
#include <stdio.h>
#in