1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
#include <dlfcn.h> #include <stdio.h> #include <stdlib.h> extern int call_me (void); int call_me (void) { int (*fp) (void); fp = dlsym (RTLD_DEFAULT, "foo"); if (fp == NULL) { printf ("cannot get address of foo in global scope: %s\n", dlerror ()); exit (1); } return fp () - 42; }