#include "wildio.h" #include "mymath.h" #include #include double magic_number = 0.0; int main(int argc, char** argv) { void *libwildio; int (*show_a_double_call)(double); double (*checkargs_call)(int,char**); void *libmymath; double (*sqrt_call)(double), result; dlerror(); if (libwildio=dlopen("libwildio.so.1",RTLD_LAZY)) { checkargs_call = dlsym(libwildio,"checkargs"); show_a_double_call = dlsym(libwildio,"show_a_double"); /* magic_number will be set by checkargs */ magic_number = (*checkargs_call)(argc,argv); if (libmymath=dlopen("libmymath.so.1",RTLD_LAZY)) { sqrt_call = dlsym(libmymath,"sqrt"); magic_number = (*sqrt_call)(magic_number); result = (*show_a_double_call)(magic_number); dlclose(libmymath); dlclose(libwildio); return result; } } /* last exit */ exit(1); }