如何从C ++中的系统PATH获取绝对文件路径?

时间:2019-03-26 12:23:52

标签: c++ path boost-filesystem

如果文件位于系统PATH中,是否可以通过文件名获取文件的完整路径?

例如,我的路径中有cmake。我可以使用C ++文件系统库获取完整路径吗?我只想对文件是否存在进行跨平台检查。

1 个答案:

答案 0 :(得分:1)

Boost.Process search_path中具有此功能。这是一个小型的Linux示例测试测试搜索路径,以查找sh可执行文件在系统路径中的位置。

#include <iostream>
#include <cstdlib>
#include <boost/process/search_path.hpp>
#include <string>

int main()
{ 
    auto myPath = boost::process::search_path("sh");

    std::cout << "sh executable path " << myPath << std::endl;

}

要测试的实时环境: https://wandbox.org/permlink/c3TbKq4sliBjxRVc

输出:

  

开始
  sh路径“ / bin / sh”
  0
  完成