动态链接库操作
打开/关闭动态链接库
#include <dlfcn.h>
void *dlopen(const char *filename, int flag);
int dlclose(void *handle);
读取动态链接库的操作错误
#include <dlfcn.h>
char *dlerror(void);
获取动态链接库中的符号地址
#include <dlfcn.h>
void *dlsym(void *handle, const char *symbol);
例如:
static int do_proc_open(const char *path, struct fuse_file_info *fi)
{
int (*proc_open)(const char *path, struct fuse_file_info *fi);
char *error;
dlerror(); /* Clear any existing error */
proc_open = (int (*)(const char *path, struct fuse_file_info *fi)) dlsym(dlopen_handle, "proc_open");
error = dlerror();
if (error != NULL) {
lxcfs_error("%s\n", error);
return -1;
}
return proc_open(path, fi);
}