以下函数编译时候要加入 -ldl (指定dl库):例如:gcc test.c -o test -ldl
dlopen()
功能:打开一个动态链接库
包含头文件:#include <dlfcn.h>
函数定义:void * dlopen( const char * pathname, int mode );
函数描述:在dlopen的()函数以指定模式打开指定的动态连接库文件,并返回一个句柄给调用进程。使用dlclose()来卸载打开的库。
mode:分为这几种
RTLD_LAZY 暂缓决定,等有需要时再解出符号
RTLD_NOW 立即决定,返回前解除所有未决定的符号。
RTLD_LOCAL
RTLD_GLOBAL 允许导出符号
RTLD_GROUP
RTLD_WORLD
返回值:打开错误返回NULL。成功返回库引用。
dlclose();
函数原型为: int dlclose (void *handle);
dlclose用于关闭指定句柄的动态链接库,只有当此动态链接库的使用计数为0时,才会真正被系统卸载。
dlerror();
函数原型为: const char *dlerror(void);
当动态链接库操作函数执行失败时,dlerror可以返回出错信息,返回值为NULL时表示操作函数执行成功。
dlsym();
函数原型是:void* dlsym(void* handle,const char* symbol)
头文件:<dlfcn.h>
handle是由dlopen打开动态链接库后返回的指针,symbol就是要求获取的函数的名称,函数返回值是void*,指向函数的地址,供调用使用
如果觉得《gcc -ldl》对你有帮助,请点赞、收藏,并留下你的观点哦!