LINUX.ORG.RU

может проще так "./"

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

при запуске из терминала
get_current_dir_name возвращает папку /home/user/program
а при запуске из окна мышкой
/home/user

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

> при запуске из терминала

> get_current_dir_name возвращает папку /home/user/program

> а при запуске из окна мышкой /home/user

так вам рабочий каталог нужен или каталог, где бинарник расположен?

если каталог с бинарником, то см. argv[0] (не уверен, что это всегда работает :( )

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

В argv[0] то, каким именем заустили программу.

Можно взять argv[0], потом which, а это может быть и симлинк. Но, как-то все это не красиво.

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

>В argv[0] то, каким именем заустили программу.

В argv[0] может быть любая фигня. То, что там располпгается команда, которой запущена программа --- лишь соглашение.

Правда вероятность того, что там будет что-то другое очень мала, но все ж она есть:)

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

> > Если нужен файл программы, можно посмотреть куда показывает /proc/[pid]/exe

> а насколько это переносимо?

Ни на сколько :-(

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

> > > Если нужен файл программы, можно посмотреть куда показывает /proc/[pid]/exe

> > а насколько это переносимо?

> Ни на сколько :-(

Ну а хотя бы между разными ядрами (2.4.x 2.6.x)?

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

Дело не в ядре, а в наличии смонтированной /proc, от наличия которой, кстати, зависит очень много всяких прог. Наскидку: top, lsof, fuser. Так что если это не embedded, то с 99% вероятностью этот способ работать будет.

Но смотреть, IMHO, лучше по симлинку /proc/self/exe.

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

QDir::current() реализована через getcwd(), QApplication::applicationFilePath() через чтение argv[0].

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

BTW а зачем тебе собственно искать испольняемый файл?

Небольшое обсуждение смотри в Unix Programming FAQ
http://www.erlenstar.demon.co.uk/unix/faq_toc.html
в вопросах:
1.14 How can I find a process' executable file?
1.14.1 So where do I put my configuration files then?

HTH

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

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

anonymous_incognito ★★★★★
()

Я использовал скрипт, который запускал программу: http://plg.lrn.ru/temp/sven

Он выставлял cwd в путь, где расположен сам бинарник программы.

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