📄 init_main.c
字号:
/* init_main.c: Static Constructor Initialization for Dynamically * Linked Libraries * Author: James Kempf * Created On: Fri Dec 21 08:31:07 1990 * Last Modified By: James Kempf * Last Modified On: Wed Apr 24 10:41:25 1991 * Update Count: 46*/#include "dldefs.h"/* This global is used to communicate the ctor/dtor list address to * dynamically linked libraries. Some static linkers may have trouble * with initialized data in PIC code. gcc can generate initialization * functions for any user data, but the ctor/dtor lists are generated * by the linker. So we use this ruse to make sure the address gets * to the initialization function. This code should *always* run single * threaded.*/int * __function_list_addr = 0;extern int __CTOR_LIST__;extern int __DTOR_LIST__;int __main();void INIT_FUN();void FINI_FUN();void _initialize_dynamic_libs();void _finalize_dynamic_libs();void exit(/*int*/);void _exit(/*int*/);void _cleanup();/************************************************************************* * Main initialization and finalization ************************************************************************//* __main-Initialize dynamically linked libraries, then main. */int __main(){ _initialize_dynamic_libs(); __function_list_addr = &__CTOR_LIST__; INIT_FUN(); return(0);}void exit( int status){ __function_list_addr = &__DTOR_LIST__; FINI_FUN(); _finalize_dynamic_libs(); _cleanup(); _exit(status);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -