Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

[FreeBSD] Как получить полный путь процесса

4
18 февраля 2006 года
mike
3.7K / / 01.10.2002
мне нужно получить полный путь к конфигурационному файлу. Он находится в одном каталоге с программой.

При запуске программы текущим может быть любой каталог.

В /proc/pid/* пути нет. Кто что может посоветовать ??

/gcc
15K
19 февраля 2006 года
borodatyi
16 / / 06.02.2006
если я правильно понял вопрос, то
http://www.codenet.ru/progr/cpp/spru/getcwd.php

или system("pwd");
2
20 февраля 2006 года
squirL
5.6K / / 13.08.2003
Цитата:
Originally posted by mike
Кто что может посоветовать ??


ответ уже был дан. но я бы добавил, что лучше держать конфиги согласно стандарту - в /etc, а точное местоположение определять на этапе сборки пакета (например ./configure --with-conf-dir=/usr/local/etc). если требуется использовать отличный от дефолтно расположенного конфиг - задавать это явно:
./prog -C prog.conf

4
21 февраля 2006 года
mike
3.7K / / 01.10.2002
Цитата:
Originally posted by borodatyi
если я правильно понял вопрос, то
http://www.codenet.ru/progr/cpp/spru/getcwd.php

или system("pwd");



Меня не интересует текущий каталог, меня интересует каталог в котором находится запускаемая программа.

Пока я использую следующее решение:

Беру ARGV[0] и заменяю имя запускаемого файла на имя конфигурационного. Если запуск производится из текущего каталога, то в ARGV[0] "./filename", если из другого, то в ARGV[0] есть полный или относительный путь, например "../mydir/filename"

4
21 февраля 2006 года
mike
3.7K / / 01.10.2002
Цитата:
Originally posted by squirL
ответ уже был дан. но я бы добавил, что лучше держать конфиги согласно стандарту - в /etc, а точное местоположение определять на этапе сборки пакета (например ./configure --with-conf-dir=/usr/local/etc). если требуется использовать отличный от дефолтно расположенного конфиг - задавать это явно:
./prog -C prog.conf



Пакет постовляется в собранном виде. Рутовых привелегий нет. Командной строкой пользоваться нельзя по ТЗ

1.8K
21 февраля 2006 года
LM(AL/M)
332 / / 20.12.2005
Цитата:
Originally posted by mike
мне нужно получить полный путь к конфигурационному файлу. Он находится в одном каталоге с программой.

При запуске программы текущим может быть любой каталог.

В /proc/pid/* пути нет. Кто что может посоветовать ??

/gcc



 
Код:
main (int argc, char ** argv)
{
  puts(argv[0]);
}
15K
21 февраля 2006 года
borodatyi
16 / / 06.02.2006
 
Код:
#include <stdlib.h>

void main(){
        char *pathvar;
        pathvar = getenv("PWD");
        printf("%s\n",pathvar);
}


в *pathvar лежит полный путь (от корня)
4
22 февраля 2006 года
mike
3.7K / / 01.10.2002
Цитата:
Originally posted by borodatyi
 
Код:
#include <stdlib.h>

void main(){
        char *pathvar;
        pathvar = getenv("PWD");
        printf("%s\n",pathvar);
}


в *pathvar лежит полный путь (от корня)



Переходим в /home/mike запускаем программу как
/usr/local/myprogram/example

Результат работы:

 
Код:
/home/mike


А мне надо /usr/local/myprogram
4
22 февраля 2006 года
mike
3.7K / / 01.10.2002
Цитата:
Originally posted by LM(AL/M)
 
Код:
main (int argc, char ** argv)
{
  puts(argv[0]);
}



Вот так и делаю. А как проделать то-же самое на Perl ??

ARGV[0] там содержит первый агрумент, а не имя запускаемого файла. Может есть что-то типа PHP-шного "PHP_SELF"

4
22 февраля 2006 года
mike
3.7K / / 01.10.2002
Цитата:
Originally posted by mike
Вот так и делаю. А как проделать то-же самое на Perl ??

ARGV[0] там содержит первый агрумент, а не имя запускаемого файла. Может есть что-то типа PHP-шного "PHP_SELF"



Разобрался. В Perl - $0

15K
23 февраля 2006 года
borodatyi
16 / / 06.02.2006
Цитата:
Originally posted by mike
Разобрался. В Perl - $0


так надо было сразу говорить, что на perl ))

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог