libdl.so的基本使用

一、 使用libdl.so库
动态库加载原理
动态库中函数的查找已经封装成哭libdl.so
libdl.so里面有4个函数:
dlopen//打开一个动态库
dlsym//在打开的动态库里找一个函数
dlclose//关闭动态库
dlerror//返回错误


dl.c
#include 
#include 

int main(){
   void* handler = dlopen("./libdemo1.so",RTLD_LAZY);
   int (*fun)(int,int) = dlsym(handler,"add");
   int result = fun(34,25);

   printf("the result of teo number is %d\n",result);

}


在命令行中输入的命令:
[fedora@localhost day02_r3]$ gcc dl.c -odl -ldl
[fedora@localhost day02_r3]$ ./ld

----------------------------------libdl.so的基本使用的小结----------------------------------------
只需要记住一个头文件,和四个函数即可:
头文件:#include

四个函数:
dlopen//打开一个动态库
dlsym//在打开的动态库里找一个函数
dlclose//关闭动态库
dlerror//返回错误


头文件和上面的四个函数的用法都不需要死记,旺季的时候man一下即可。。。。。


 总结:
  1. 编译连接动态库
  2. 使用动态库
  3. 怎么配置让程序调用动态库
  4. 掌握某些工具的使用 nm ldd lddconfig objdump strit(去掉多余的信息)

你可能感兴趣的:(linux高级编程,linux高级编程)