| #include <dlfcn.h> | |
| #include <stdio.h> | |
| int | |
| main (void) | |
| { | |
| void *h = dlopen ("unload6mod1.so", RTLD_LAZY); | |
| if (h == NULL) | |
| { | |
| puts ("dlopen unload6mod1.so failed"); | |
| return 1; | |
| } | |
| int (*fn) (int); | |
| fn = dlsym (h, "foo"); | |
| if (fn == NULL) | |
| { | |
| puts ("dlsym failed"); | |
| return 1; | |
| } | |
| int val = fn (16); | |
| if (val != 24) | |
| { | |
| printf ("foo returned %d != 24\n", val); | |
| return 1; | |
| } | |
| return 0; | |
| } |