1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
#include <dlfcn.h> #include <stdlib.h> int obj3func1 (int a __attribute__ ((unused))) { return 44; } int obj3func2 (int a) { return foo (a) + 42; } int preload (int a) { int (*fp) (int) = dlsym (RTLD_NEXT, "preload"); if (fp != NULL) return fp (a) + 10; return 10; }