dlopen与dlsym的说明和使用-动态拿到函数地址

论坛 期权论坛 脚本     
匿名网站用户   2020-12-21 07:49   76   0

Linux提供了一套API来动态装载库。下面列出了这些API:

- dlopen,打开一个库,并为使用该库做些准备。
- dlsym,在打开的库中查找符号的值。
- dlclose,关闭库。
- dlerror,返回一个描述最后一次调用dlopen、dlsym,或dlclose的错误信息的字符串。


通过dlopen动态的打开动态库,动态库加载完成后,返回一个句柄,然后把句柄传给dlsym定位到你需要执行的函数指针,函数指针拿到了,就可以使用这个函数了。

dlopen :open a dynamically linked library

dlsym :getthe address of a symbolina dynamically linked library

使用方法:

void* dvm_handle = dlopen("libdvm.so", RTLD_NOW);
char *name;//你想拿到的函数名称,或者变量名
void* ret = dlsym(dvm_handle, name);
ret就是函数的指针

参考自:http://tldp.org/HOWTO/Program-Library-HOWTO/dl-libraries.html



分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:1136255
帖子:227251
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP