如何获得c ++自己的目录?

时间:2015-05-27 07:32:25

标签: c++ linux shared-libraries

我有一个c ++ .so文件,所以我从python中调用它。我想从c ++代码获得.so文件自己的位置。我使用了getcwd和readlink。他们返回运行目录的python代码。有人知道这个问题吗?请帮助我,谢谢。

我的.so文件位置是:/home/user/cpp/test.so
我的python代码位置是:/home/user/python/test.py
getcwd,readlink的输出是:/ home / user / python(我想得到“/ home / user / cpp”)

1 个答案:

答案 0 :(得分:0)

通常,查找可执行文件的共享库依赖项及其路径的最简单/最有效的方法是使用"ldd"命令。

如果您想以编程方式获取此信息,则可能是dl_iterate_phdr

另一个是检查/ proc / - pid - / maps:

http://www.unix.com/programming/34498-how-view-loaded-shared-libraries-running-processes-linux.html