Форум — Development Что возвращает путь к EXEшнику??? 0 0 Мужики, срочно надо - какая в С/С++ есть функция, которая возвращает путь к исполняемому файлу, а точнее - к каталогу, в котором оный файл лежит? Ссылка
Ответ на: комментарий от asgard 25.05.07 15:48:47 MSK getcwd не поможет. Можно сделать через чтение /proc/pid процесса/exename pid процесса получается getpid denisv (25.05.07 16:38:36 MSK) Ссылка
Правильный ответ: все зависит от того, что за система, общего для всех способа не существует. На OS X например вообще невозможно достоверно определить путь к исполняемому файлу (возможно и на FreeBSD тоже, не берусь утверждать). anonymous (25.05.07 16:41:35 MSK) Ссылка
На Linux: max@triton:~/ > readlink /proc/self/exe /bin/readlink Begemoth ★★★★★ (25.05.07 21:13:56 MSK) Показать ответ Ссылка
Ответ на: комментарий от Begemoth 25.05.07 21:13:56 MSK у меня похожий вопрос, но, не бейте, как это сделать для винды? anonymous (26.05.07 21:25:27 MSK) Показать ответы Ссылка
Ответ на: комментарий от anonymous 26.05.07 21:25:27 MSK бить не буду, но пошлю на rsdn.ru Begemoth ★★★★★ (26.05.07 22:04:57 MSK) Ссылка
Ответ на: комментарий от anonymous 26.05.07 21:25:27 MSK в винде AFAIK нулевой параметр функции main это имя программы с путём. Что является нарушением стандарта :) anonymous (27.05.07 12:47:33 MSK) Показать ответ Ссылка
Ответ на: комментарий от anonymous 26.05.07 21:25:27 MSK Если память не изменяет: GetModuleName А в *NIX - простой вариант такой: cat myprog #!/bin/sh DIRNAME=`dirname $0` RUNDIR=`pwd` cd "$DIRNAME"; DIRNAME=`pwd`; cd "$OLDDIR" myprog-bin --run-path "$DIRNAME" И парсить аргументы коммандной строки. rymis ★★ (28.05.07 11:48:27 MSK) Показать ответ Ссылка
Ответ на: комментарий от rymis 28.05.07 11:48:27 MSK max@triton:~/ > cat foo.sh RNAME=`dirname $0` RUNDIR=`pwd` cd "$DIRNAME"; DIRNAME=`pwd`; cd "$OLDDIR" echo --run-path "$DIRNAME" max@triton:~/ > ./foo.sh --run-path /home/max max@triton:~/ > cd Projects max@triton:~/Projects/ > ../foo.sh --run-path /home/max/Projects max@triton:~/Projects/ > PATH=$PATH:~ max@triton:~/Projects/ > foo.sh --run-path /home/max/Projects Begemoth ★★★★★ (28.05.07 16:13:10 MSK) Показать ответ Ссылка
Ответ на: комментарий от Begemoth 28.05.07 16:13:10 MSK #!/bin/sh OLDDIR=`pwd` DIR=`dirname "$0"` cd "$DIR" ; DIR=`pwd`; cd "$OLDDIR" echo "$DIR" Да, в том скрипте была ошибка, но общая идея понятна. rymis ★★ (28.05.07 17:57:52 MSK) Показать ответ Ссылка
Ответ на: комментарий от rymis 28.05.07 17:57:52 MSK #!/bin/sh OLDDIR=`pwd` DIR=`dirname "$0"` cd "$DIR" ; DIR=`pwd`; cd "$OLDDIR" echo "$DIR" rymis ★★ (28.05.07 17:58:40 MSK) Ссылка
Ответ на: комментарий от anonymous 27.05.07 12:47:33 MSK если запущена не из текущего каталога. в linux кстати так же. eXOR ★★★★★ (31.05.07 11:12:07 MSK) Ссылка