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

问题描述 投票:0回答:1

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

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

c++ path boost-filesystem
1个回答
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 完

© www.soinside.com 2019 - 2024. All rights reserved.