Linux下,手动加载动态库~~

这篇博客介绍了如何在Linux环境下手动加载动态库,主要涉及dlopen()、dlsym()、dlclose()和dlerror()四个关键函数。dlopen用于打开动态链接库,dlsym获取库中函数的地址,dlclose关闭库,而dlerror则用于获取错误信息。示例代码展示了如何使用这些函数来调用动态库中的printf函数。
摘要由CSDN通过智能技术生成

咳咳,在自己写的函数中加载一个动态库。

 

----头文件 #include<dlfcn.h>

 

有四位伙计: dlopen(),

                   dlsym(),

                   dlclose(),

                   dlerror().

接下来一一登场!

 

在编译时要加入 -ldl  : 如: gcc test.c -o test -ldl

 

1, dlopen() 使用指定模式,打开指定的动态链接库文件,并返回一个句柄给调用进程,失败的话返回NULL。

 

函数原型:

              void * dlopen(const char* pathname, int mode);

              pathname:  指定库的路径和名字。

              mode: 打开模式。有以下几种:

       a.解析方式:

             RTLD_LAZY    暂缓决定,等有需要时再解出符号。

             RTLD_NOW    立即决定,返回前解除所有为决定的符号。

       b.作用范围,可与解析方式通过"|"组合使用

             RTLD_LOCAL      动态库中定义的符号不能被其后打开的其他库重定位,缺省为此。

             RTLD_GLOBAL    动态库中定义的符号可被其后打开的其他库重定位。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值