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

来源:互联网 发布:同志手机聊天软件 编辑:程序博客网 时间:2024/05/18 03:17

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

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


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

 dlopen :open a dynamically linked library

 dlsym : get the address of a symbol in a 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 0
原创粉丝点击