LINUX.ORG.RU

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


0

1

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

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

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



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

Опять ты. Объясни уже, за каким чертом тебе это вообще понадобилось.

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

geekless ★★
()

си++ настолько убогие костыли что нет даже такой простейшей функции\метода.

шел бы ты на юг, толстячок, такой стандартной функции нет для всего набора ОС, а не для ЯП

не стандартными средствами

http://developer.qt.nokia.com/doc/qt-4.8/qcoreapplication.html#applicationDir...

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

Не, в линуксе я бы абсолютный путь указал. То что мне нужно было я еще вчера написал, не так как хотелось но пойдет. Сейчас это уже спортивный интерес таки найти истину...

dpkg-i
() автор топика
Ответ на: комментарий от anonymous

Вот qt здесь не надо пожалуйста, все равно что матом ругаться в присутствии культурного общества.

dpkg-i
() автор топика
Ответ на: комментарий от dpkg-i

в присутствии культурного общества.

«культурное общество» основы С хотя бы сначала выучило, а потом нос воротило

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

ога, ога, и основы си это конечно же кют, не позорься уже, так и скажи мол «извените пацаны бес попутал, линканул случайно не подумавши» :)

dpkg-i
() автор топика
Ответ на: комментарий от dpkg-i

ога, ога, и основы си это конечно же кют,

в основы C тебя тыкали в другом топике

не позорься уже

тут ты прав, больше не буду

anonymous
()

Была какая-то библиотека, которая инкапсулировала в себя все известные способы получить путь к бинарнику для разных ОС. Но название вылетело из головы. Может быть, кто-нибудь другой вспомнит.

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

boost::filesystem

круто, как и хотел ТС - boost, вот только нужной функции там нет ^_^

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

От чего же, писал я с ее помощью гуевую прогу, небольшую. А теперь читаем ее лицензионные условия до тех пор пока не стошнит, потом придет понимания того что я писал выше.

dpkg-i
() автор топика

щас опять скажут что плохому учу, но вообще то main получает аргументы командной строки, так вот нулевой аргумент - это с-но запущенный файл;-) Дальше его можно привести к полному, причем вполне кроссплатформенным способом. Правда вот чтение ссылок вроде не кроссплатформенно... наверное потому что под виндой ссылок нету?;-)

AIv ★★★★★
()
Ответ на: комментарий от dpkg-i

А теперь читаем ее лицензионные условия до тех пор пока не стошнит, потом придет понимания того что я писал выше

LGPL я читал, не стошнило.

stack_protector
()

А в SDL не чего подобного нет случаем? Вроде библа для мультимедиа, наверняка что то придумали для путей...

dpkg-i
() автор топика
Ответ на: комментарий от stack_protector

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

dpkg-i
() автор топика
Ответ на: комментарий от stack_protector

Читайте лицензионные условия, зарегистрировав проект как опенсорс, перевести потом его в коммерцию невозможно, нарушиш лиц-договор

dpkg-i
() автор топика
Ответ на: комментарий от geekless

«Можно придумать защиту от дурака, но только от неизобретательного»

А если такое поведения является желаемым? ТС же не объяснил нифига, зачем ему оно надо...

AIv ★★★★★
()
Ответ на: комментарий от dpkg-i

Qt тебе не пренадлежит, и не тебе решать будет он опенсорс или коммерческим. Что касется твоего «проекта»: советую все же почитать LGPL, чтобы больше не садиться в лужу.

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

он видимо еще GPL-версией пользовался, но в голове у него все намешалось

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

Qt тебе не пренадлежит, и не тебе решать будет он опенсорс или коммерческим.

Я за это убожество и не говорил, я говорил за регистрацию проектов у них, если ты у них зареган как опенсорс, перевести в коммерческую не сможешь, нарушишь договор.

И вообще, иди мастурбируй на свою QT, в этой теме это убожество не нужно.

dpkg-i
() автор топика
Ответ на: комментарий от anonymous

__старую__ лицензию Qt

Это было совсем недавно же, не обязательно быть старым

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

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

Нет, ты не думай, это называется не «троллинг», это называется «публично обосраться».

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

Да пожалуйста, на официальном сайте сейчас: http://qt.nokia.com/about/licensing/frequently-asked-questions

ЦЫТАТА: Can I switch from using Qt under the LGPL to commercial afterwards? No. Users of the LGPL versions of Qt need to comply with the LGPL licensing terms and conditions. Qt’s commercial license agreement contains a restriction that prohibits customers from initially beginning development with the LGPL-licensed version of Qt and then transitioning to a commercial version of Qt.

dpkg-i
() автор топика
Ответ на: комментарий от geekless

В каком смысле? По моему они там пишут как раз про лицензии регистрации проектов.

dpkg-i
() автор топика
Ответ на: комментарий от geekless

А, все, понял. Все равно этот костыль не нужен.

dpkg-i
() автор топика
Ответ на: комментарий от AIv

А вообще да, всё зависит от целей.

Для таких случаев надо использовать dependency injection. Тот же ZeroInstall, насколько я понимаю, гарантирует, что в argv[0] он поместит честный полный путь.

geekless ★★
()

Поищи на http://www.rsdn.ru. Там целых несколько таких тем. Там же узнаешь, что в Юниксе в общем случае как получить полный путь к папке каталогу из которой была запущена программа невозможно.

akk ★★★★★
()
Ответ на: комментарий от dpkg-i

решение использовать костыль называемый QT это все равно что ...

Ссылку на Qt вам дали не чтобы его использовать, а чтобы открыть исходный код и посмотреть, как это реализуется кроссплатформенно.

Dendy ★★★★★
()
Ответ на: комментарий от dpkg-i

Хм. Странное предвзятое отношение. Каким требованиям к твоей программе не соответствует использование кутэ?

azure ★★
()
Ответ на: комментарий от dpkg-i

Если не нравится - можешь позаниматься автофелляцией с велосипедом на Си, какие проблемы :)

slackwarrior ★★★★★
()
Ответ на: комментарий от dpkg-i

Хорошо что достаточно много девелоперов достаточно профессиональны, чтобы реагировать на выкрики школьника вроде тебя. И нормально используют Qt если он решает задачу

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

Да ты меня хоть чайником, хоть кастрюлей назови, но каку под названием QT я использовать не стану.

dpkg-i
() автор топика
Ответ на: комментарий от dpkg-i

А кто нибудь, что нибудь окромя boost`а знает?

Кто нибудь знает, что плюсы применяются и в контроллерах, например, вплоть до 8-битных, где отродясь никакой файловой системы не было, и не будет.

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

чукча не читатель?

Чукча читатель от первого поста и до последнего, а не наоборот.

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