#include #include int main() { while (1) { void* h = dlopen("./shared.so", RTLD_NOW); char* e = dlerror(); if (e) { printf("%s\n", e); return 1; } void (*p)(void) = dlsym(h, "prt"); p(); dlclose(h); getchar(); } } /* clang -o loadshared loadshared.c -ldl ./loadshared in another terminal cp shared2.so shared.so enter -> getchar() cp shared1.so shared.so enter -> getchar() */