【发布时间】:2014-07-19 13:02:07
【问题描述】:
下面的代码给出了 Linux 上 exe 文件的当前路径:
#include <iostream>
std::string getExePath()
{
char result[ PATH_MAX ];
ssize_t count = readlink( "/proc/self/exe", result, PATH_MAX );
return std::string( result, (count > 0) ? count : 0 );
}
int main()
{
std::cout << getExePath() << std::endl;
return 0;
}
问题是,当我运行它时,它会给我当前的 exe 路径和 exe 的名称,例如:
/home/.../Test/main.exe
我只想要一个
/home/.../Test/
我知道我可以解析它,但是有没有更好的方法来做到这一点?
【问题讨论】:
-
你的标题有点误导。问题实际上是关于获取给定文件名的目录。该文件恰好是您的可执行文件这一事实并不重要。