1 | #include <string.h> |
2 | #include <unistd.h> |
3 | |
4 | static void |
5 | init_0 (int argc __attribute__ ((unused)), char **argv) |
6 | { |
7 | char *p = strrchr (s: argv [0], c: '/'); |
8 | |
9 | if (p == NULL) |
10 | return; |
11 | |
12 | p++; |
13 | size_t len = strlen (s: p); |
14 | write (STDOUT_FILENO, buf: "init array in DSO: " , n: 19); |
15 | write (STDOUT_FILENO, buf: p, n: len); |
16 | write (STDOUT_FILENO, buf: "\n" , n: 1); |
17 | } |
18 | |
19 | void (*const init_array []) (int, char **) |
20 | __attribute__ ((section (".init_array" ), aligned (sizeof (void *)))) = |
21 | { |
22 | &init_0, |
23 | }; |
24 | |