Прежде чем я буду отмечен как повторяющийся, на все похожие вопросы, которые я смог найти, есть ответы до введения std :: filesystem, и я использую код для конкретной платформы или Boost :: filesystem. Я ищу переносимый ответ, в котором используется std :: filesystem.
Можно ли получить путь, по которому находится исполняемый файл c ++ (не рабочий каталог), с помощью std :: filesystem? Если да, то как?
argv
) функцииmain
? Я не уверен, насколько это портативно. - person Indiana Kernick   schedule 04.05.2019argv[0]
- это «имя, используемое для вызова программы». Предполагая, что это абсолютный путь, возможно, не переносимо, но я действительно понятия не имею. Все, что я могу сказать, это то, что в macOS это абсолютный путь. - person Indiana Kernick   schedule 04.05.2019.
? Или это должен быть абсолютный путь? - person L. F.   schedule 04.05.2019std::filesystem
, текущий каталог иargv[0]
, но он по-прежнему не переносится, поскольку ничего не говорит о том, что входит вargv[0]
вC++
Стандарте. - person Galik   schedule 04.05.2019std::filesystem::absolute
сделает то, что вы хотите (создайтеstd::filesystem::path
объект с использованиемargv[0]
). - person Phil Brubaker   schedule 04.05.2019