如何从 C++ 中的系统 PATH 获取文件的绝对路径?
How to get the absolute file path from the system PATH in C++?
如果在系统 PATH 中,是否可以通过文件名获取文件的完整路径?
例如,我的 PATH 中有 cmake
。我可以使用 C++ 文件系统库获取它的完整路径吗?我只想跨平台检查文件是否存在。
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
输出:
Start
sh path "/bin/sh"
0
Finish
如果在系统 PATH 中,是否可以通过文件名获取文件的完整路径?
例如,我的 PATH 中有 cmake
。我可以使用 C++ 文件系统库获取它的完整路径吗?我只想跨平台检查文件是否存在。
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
输出:
Start
sh path "/bin/sh"
0
Finish