#include <stdio.h>
#include <dlfcn.h>

# define M_PI           3.14159265358979323846  /* pi */

int main(void)
{
  void *libm = dlopen("/lib64/libm.so.6", RTLD_LAZY);
  if (libm == NULL) {
    perror("dlopen");
    return 1;
  }
  
  double (*sin)(double) = dlsym(libm, "sin");
  double (*cos)(double) = dlsym(libm, "cos");
  
  printf("sin(cos(pi))) = %lf\n", sin(cos(M_PI)));
  
  return 0;
}
