1 #include <dlfcn.h> 2 #include <stdio.h> 3 4 5 extern void constr (void) __attribute__ ((__constructor__)); 6 void 7 __attribute__ ((__constructor__)) constr(void)8constr (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 } 26