| lh | 9ed821d | 2023-04-07 01:36:19 -0700 | [diff] [blame] | 1 | #include <dlfcn.h> |
| 2 | #include <stdio.h> | ||||
| 3 | |||||
| 4 | |||||
| 5 | extern void constr (void) __attribute__ ((__constructor__)); | ||||
| 6 | void | ||||
| 7 | __attribute__ ((__constructor__)) | ||||
| 8 | constr (void) | ||||
| 9 | { | ||||
| 10 | void *handle; | ||||
| 11 | |||||
| 12 | /* Open the library. */ | ||||
| 13 | handle = dlopen (NULL, RTLD_NOW); | ||||
| 14 | if (handle == NULL) | ||||
| 15 | { | ||||
| 16 | puts ("Cannot get handle to own object"); | ||||
| 17 | return; | ||||
| 18 | } | ||||
| 19 | |||||
| 20 | /* Get a symbol. */ | ||||
| 21 | dlsym (handle, "main"); | ||||
| 22 | puts ("called dlsym() to get main"); | ||||
| 23 | |||||
| 24 | dlclose (handle); | ||||
| 25 | } | ||||