C++如何在Unix中获取正在执行的.so模块的文件名(和路径)

Ste*_*eve 5 c++ unix solaris

C++如何在Unix中获取正在执行的.so模块的文件名(和路径)?

与Windows上的GetModuleFileName类似的东西.

mar*_*k4o 6

虽然它不是POSIX标准接口,但该dladdr()功能可用于许多系统,包括Linux,Solaris,Darwin/Mac OS X,FreeBSD,HP-UXIRIX.此函数接受一个地址,该地址可以是指向模块中静态函数的指针(例如,如果转换为void *),并Dl_info使用包含该地址(在dli_fname成员中)的共享对象的路径名的信息填充结构.