LINUX.ORG.RU

С++ кросплатформенный полный путь к файлу


0

1

Ранее я создавал подобную тему C++ получить путь до запущенного бинарного файла но в ней просил стандартными средствами, сейчас стало ясно что си++ настолько убогие костыли что нет даже такой простейшей функции\метода.

Вообщем вопрос: как получить полный путь к папке из которой была запущена программа, получить не стандартными средствами c++, а например тем же boost`ом?

Решение должно быть платформонезависимым.



Последнее исправление: dpkg-i (всего исправлений: 2)
Ответ на: комментарий от Legioner

getcwd

/thread

Microsoft Windows [Version 6.1.7601] (c) Корпорация Майкрософт (Microsoft Corp.), 2009. Все права защищены.

C:\Users\one_more_hokum>getcwd «getcwd» не является внутренней или внешней командой, исполняемой программой или пакетным файлом.

C:\Users\one_more_hokum>

continue_thread(thread);

one_more_hokum ★★★
()
Ответ на: комментарий от one_more_hokum

Речь шла о C и стандартных средствах (стандарт среди нормальных ОС - POSIX) для получения текущей директории, а не о недошелле.

Legioner ★★★★★
()
Ответ на: комментарий от Legioner

Windows совместима с POSIX.

ох уж эти сказочники (с)

anonymous
()
Ответ на: комментарий от one_more_hokum

У неё есть подсистема POSIX, но начиная с WinXP она в поставке по умолчанию не идёт.

И что? В убунте по умолчанию тоже много чего не идёт.

Legioner ★★★★★
()
char resolved[PATH_MAX];
realpath(argv[0], resolved);

платформонезависимо в рамках платформ на которых есть POSIX. 100% платформонезависимости не бывает, особенно в вопросах работы с файлами/путями и подобным.

waker ★★★★★
()
Ответ на: комментарий от geekless

Если в юниксе твоей программе нужно знать путь к своему бинарнику, значит, ты что-то делаешь не так.

А по-моему, вшитые в бинарник пути - это дичайший костыль

annulen ★★★★★
()
Ответ на: комментарий от annulen

Смотря какие пути, смотря для чего. Если для прикладного ПО пути к ресурсам и библиотекам, то да.

Было бы у меня много ненужного бабла, я бы, наверное, сделал доброе дело и вложился в разработку и продвижение ZeroInstall как универсальной пакетной системы.

geekless ★★
()
Ответ на: комментарий от one_more_hokum

getcwd «getcwd» не является внутренней или внешней командой, исполняемой программой или пакетным файлом.

функция вполне себе работает

annulen ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.