如何从库本身获取共享库的路径?
换句话说,假设库X是使用加载的dlopen(),我怎样才能访问用于从库本身加载所述库的路径?
请注意,我不能让首先加载库的代理程序提交给我这个参数.
更新:这是使用静态变量的方式:
std::string wdir;
namespace {
class dynamic_library_load_unload_handler {
public:
dynamic_library_load_unload_handler(){
Dl_info dl_info;
dladdr((void *) NP_Initialize, &dl_info);
std::string path(dl_info.dli_fname);
wdir = path.substr( 0, path.find_last_of( '/' ) +1 );
}
~dynamic_library_load_unload_handler(){
// Code to execute when the library is unloaded
}
} dynamic_library_load_unload_handler_hook;
}
Run Code Online (Sandbox Code Playgroud)