#include #include #include int main(int argc, char **argv){ printf("Test d'un chargement dynamique de la lib math m.\n"); //la variable qui nous permettra de tenir la lib m void *handle; //la futur fonction cos que l'on ira chercher dans lib m double (*cosine)(double); //une éventuelle chaîne d'erreur si un truc ne se passe pas comme prévu char *error; handle = dlopen("libm.so", RTLD_LAZY); if(!handle){ fprintf(stderr, "%s\n", dlerror()); exit(EXIT_FAILURE); } dlerror(); //Efface une erreur existante *(void **) (&cosine) = dlsym(handle, "cos"); error = dlerror(); if(error != NULL){ fprintf(stderr, "%s\n", error); exit(EXIT_FAILURE); } printf("%f\n", (*cosine)(2.0)); dlclose(handle); exit(EXIT_SUCCESS); }