📄 init.c
字号:
/* * Copyright (C) 2004 CodeSourcery, LLC * * Permission to use, copy, modify, and distribute this file * for any purpose is hereby granted without fee, provided that * the above copyright notice and this notice appears in all * copies. * * This file is distributed WITHOUT ANY WARRANTY; without even the implied * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. *//* Handle ELF .{pre_init,init,fini}_array sections. */#include <sys/types.h>#ifdef HAVE_INITFINI_ARRAY/* These magic symbols are provided by the linker. */extern void (*__preinit_array_start []) (void) __attribute__((weak));extern void (*__preinit_array_end []) (void) __attribute__((weak));extern void (*__init_array_start []) (void) __attribute__((weak));extern void (*__init_array_end []) (void) __attribute__((weak));extern void (*__fini_array_start []) (void) __attribute__((weak));extern void (*__fini_array_end []) (void) __attribute__((weak));extern void _init (void);extern void _fini (void);/* Iterate over all the init routines. */void__libc_init_array (void){ size_t count; size_t i; count = __preinit_array_end - __preinit_array_start; for (i = 0; i < count; i++) __preinit_array_start[i] (); _init (); count = __init_array_end - __init_array_start; for (i = 0; i < count; i++) __init_array_start[i] ();}/* Run all the cleanup routines. */void__libc_fini_array (void){ size_t count; size_t i; count = __fini_array_end - __fini_array_start; for (i = 0; i < count; i++) __fini_array_start[i] (); _fini ();}#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -