Как получить абсолютный путь к файлу из системного PATH в C ++? - PullRequest
0 голосов
/ 26 марта 2019

Можно ли получить полный путь к файлу по его имени, если он находится в системном PATH?

Например, у меня есть cmake в моем ПУТИ. Могу ли я получить полный путь к нему, используя библиотеку файловой системы C ++? Я просто хочу сделать кроссплатформенную проверку существования файла.

1 Ответ

1 голос
/ 26 марта 2019

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 path "/ bin / sh"
0
Готово

...