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;
}

questionAnswers(2)

yourAnswerToTheQuestion