#include <stdlib.h>
#include <sys/cdefs.h>
Go to the source code of this file.
◆ _start()
void _start |
( |
char ** |
ap | ) |
|
Definition at line 101 of file crt1.c.
102{
103 int status;
104 int argc = 0;
107
108 argc = *(long *)(void *)ap;
109 argv = ap + 1;
110
112
114
115 status =
main(argc, argv);
116
117 finalizer();
118
120}
static void handle_argv(int argc, char *argv[], char **env)
static void handle_static_init(int argc, char **argv, char **env)
◆ handle_argv()
static void handle_argv |
( |
int |
argc, |
|
|
char * |
argv[], |
|
|
char ** |
env |
|
) |
| |
|
inlinestatic |
Definition at line 85 of file crt1.c.
86{
87 const char *s;
88
90 environ = env;
91 if (argc > 0 && argv[0] !=
NULL) {
92 __progname = argv[0];
93 for (s = __progname; *s != '\0'; s++) {
94 if (*s == '/')
95 __progname = s + 1;
96 }
97 }
98}
◆ handle_static_init()
static void handle_static_init |
( |
int |
argc, |
|
|
char ** |
argv, |
|
|
char ** |
env |
|
) |
| |
|
inlinestatic |
Definition at line 62 of file crt1.c.
63{
64 void (*fn)(int, char **, char **);
65 size_t array_size, n;
66
68
70 for (n = 0; n < array_size; n++) {
73 fn(argc, argv, env);
74 }
75 _init();
76 array_size = __init_array_end - __init_array_start;
77 for (n = 0; n < array_size; n++) {
78 fn = __init_array_start[n];
80 fn(argc, argv, env);
81 }
82}
void(* __preinit_array_start[])(int, extern void *char **, extern void *char **)
int atexit(void(*function)(void))
◆ main()
int main |
( |
int |
, |
|
|
char ** |
|
|
) |
| |
◆ __preinit_array_start
void(* __preinit_array_start[])(int, extern void *char **, extern void *char **) |
( |
int |
, |
|
|
extern void * |
char **, |
|
|
extern void * |
char ** |
|
) |
| |
|
extern |