#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; }