这使用的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;}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)