• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 #include <dlfcn.h>
2 #include <stdio.h>
3 
4 #ifndef SO
5 #error No SO path defined
6 #endif
7 
main()8 int main() {
9   void* handle = dlopen(SO, RTLD_NOW);
10   if (!handle) {
11     printf("dlopen: %s\n", dlerror());
12     return 1;
13   }
14 
15   typedef void (*gofn_t)();
16   gofn_t gofn = (gofn_t)dlsym(handle, "GoFn");
17   const char* dlsym_error = dlerror();
18   if (dlsym_error) {
19     printf("dlsym: %s\n", dlerror());
20     dlclose(handle);
21     return 1;
22   }
23 
24   gofn();
25 
26   if (dlclose(handle)) {
27     printf("dlclose: %s\n", dlerror());
28   }
29   return 0;
30 }
31