#include #include #include void* loadLibrary(char* filename) { void* handle = dlopen( filename, RTLD_NOW ); if( !handle ) { printf("error: %s", dlerror()); return NULL; } return handle; } int go(void* handle) { typedef int (*go_t)(); go_t go = (go_t) dlsym(handle, "go"); if (!go) { printf("Cannot load symbol 'go': %s", dlerror()); dlclose(handle); return 1; } else { go(); printf("finished go()"); } return 0; } int main() { void* python = loadLibrary("./mylib.so"); if (python != NULL) { go(python); dlclose(python); } return 0; }

AltStyle によって変換されたページ (->オリジナル) /