获取可执行文件的当前逻辑路径

时间:2014-01-14 14:51:49

标签: c++ linux

在Linux上,如何获取正在运行的可执行文件的当前逻辑路径,即路径中维护符号链接的路径?

我知道我可以使用readlink /proc/self/exe获取物理路径,但有没有办法获得逻辑路径?

我写了一个简单的测试程序,test.cc编译成一个名为test的可执行文件:

#include <iostream>
#include <unistd.h>

int main(int argc, char* argv[]) {
    char buf[256];
    readlink("/proc/self/exe", buf, sizeof(buf));
    std::cout << buf << std::endl;
    return 0;
}

如果我将文件夹/home/mdkess/personal/foo符号链接到/home/mdkess/personal/foo-1.2.3,并从/home/mdkess/personal/foo运行可执行文件,程序将输出物理路径/home/mdkess/personal/foo-1.2.3/test。如何让它输出逻辑路径,即。 /home/mdkess/personal/foo/test

0 个答案:

没有答案