⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 init_main.c

📁 早期freebsd实现
💻 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 + -