caminho da biblioteca quando carregado dinamicamente?
Como posso obter o caminho da biblioteca compartilhada a partir da própria biblioteca?
Em outras palavras, digamos que a biblioteca X é carregada usandodlopen()
Como posso obter acesso ao caminho que foi usado para carregar a dita biblioteca de dentro da própria biblioteca?
Note que não posso ter o agente que carregou a biblioteca em primeiro lugar, me entregue este parâmetro.
ATUALIZADA: Aqui está a maneira que funciona com variáveis estáticas:
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;
}