#include <stdio.h> #include <dlfcn.h>
int main() { void *handle; void (*function)(); char *error;
// 打開動態鏈接庫
handle = dlopen("libexample.so", RTLD_LAZY);
if (!handle) {
fprintf(stderr, "%s\n", dlerror());
return 1;
}
// 獲取動態鏈接庫中的函數指針
function = dlsym(handle, "example_function");
if ((error = dlerror()) != NULL) {
fprintf(stderr, "%s\n", error);
return 1;
}
// 調用函數
(*function)();
// 關閉動態鏈接庫
dlclose(handle);
return 0;
}