int search(char *pattern) { void *p; int addr; /* dlopen() the main program */ if ( !(p = dlopen(NULL, RTLD_LAZY)) ) { fprintf(stderr, "%s\n", dlerror()); exit(-1); } /* search for the pattern */ if ( !(addr = (int)dlsym(p, pattern)) ) { fprintf(stderr, "%s\n", dlerror()); exit(-1); } dlclose(p); return(addr); }