当前位置: 技术问答>linux和unix
获取linux下动态库加载时的绝对路径
来源: 互联网 发布时间:2016-12-20
本文导语: 之前提过这个问题,但是没有得到答案。因为动态库的配置文件和动态库在一个目录下,而我的动态库在加载配置文件时必须知道动态库的路径才行,默认路径是加载动态库的应用程序的路径。就像windows下用GetModuleFi...
之前提过这个问题,但是没有得到答案。因为动态库的配置文件和动态库在一个目录下,而我的动态库在加载配置文件时必须知道动态库的路径才行,默认路径是加载动态库的应用程序的路径。就像windows下用GetModuleFileName获取模块路径一样的方法。(再发100分)
|
http://publib.boulder.ibm.com/infocenter/tpfhelp/current/index.jsp?topic=/com.ibm.ztpf-ztpfdf.doc_put.cur/gtpc2/cpp_dladdr.html
楼主没有试我上次说的dladdr吗?我刚才在linux下试过,可以获得目录
输出:
Address located in function /usr/lib/libm.so within the program cosf
楼主没有试我上次说的dladdr吗?我刚才在linux下试过,可以获得目录
void identify_function_ptr( void *func) {
Dl_info info;
int rc;
rc = dladdr(func, &info);
if (!rc) {
printf("Problem retrieving program information for %x: %sn", func, dlerror());
}
printf("Address located in function %s within the program %sn", info.dli_fname, info.dli_sname);
}
输出:
Address located in function /usr/lib/libm.so within the program cosf