这使用的readlink()函数正确的正确使用
readlink功能。
如果您的路径位于中
std::string,则可以执行以下操作:
#include <unistd.h>#include <limits.h>std::string do_readlink(std::string const& path) { char buff[PATH_MAX]; ssize_t len = ::readlink(path.c_str(), buff, sizeof(buff)-1); if (len != -1) { buff[len] = ' '; return std::string(buff); } }如果只在固定路径下走:
std::string get_selfpath() { char buff[PATH_MAX]; ssize_t len = ::readlink("/proc/self/exe", buff, sizeof(buff)-1); if (len != -1) { buff[len] = ' '; return std::string(buff); } }要使用它:
int main(){ std::string selfpath = get_selfpath(); std::cout << selfpath << std::endl; return 0;}


