在main方法之前调用函数
01 December 2020
在main方法之前调用函数
方法一:根据glibc的全局构造函数是放在.ctors
段中,的怪可以在.ctors
段中添加一些函数指针,就可以让这些函数在全局构造的时候调用了,如下:
#include <stdio.h>
void my_init(void){
printf("Hello ");
}
typedef void(*ctor_t)(void);
//向.ctors段中添加一个函数指针
ctor_t __attribute__((section (".ctors"))) my_init_p = &my_init;
int main(){
printf("World!\n");
return 0;
}
方法二:利用gcc的关键字 __attribute__ ((constructor))
,如下:
#include <stdio.h>
void my_init(void) __attribute__ ((constructor));
void my_init(void){
printf("Hello ");
}
int main(){
printf("World!\n");
return 0;
}