Я написал приложение на C, которое должно считывать переменные окружения и соответствующим образом обрабатывать эти изменения. Когда приложение запускается, я настроил его, чтобы продолжить и инициализировать переменную (чтобы предотвратить возврат любых нулевых указателей) через setenv("MYVARIABLE", "TEST", 1)
.
Это приложение часто зацикливается, и во время этих циклов одной из его задач является проверка этой глобальной переменной через getenv("MYVARIABLE")
.
План состоял в том, чтобы изменить эти переменные окружения с помощью сценария оболочки или сценария Python. Приложение C работает в полноэкранном режиме, поэтому у меня нет возможности протестировать этот процесс без входа в другой терминал. В моем другом терминале (c2
) я запускаю такие команды, как:
MYVARIABLE="My New Value"
or
export MYVARIABLE="My New Value"
Однако мое приложение, похоже, не улавливает обновление среды. Вместо этого он продолжает настаивать на том, что MYVARIABLE является «тестом», а не «моим новым значением». Я не уверен, почему эти две среды разделены, но мне нужно, чтобы они работали вместе. Кто-нибудь знает, что я делаю неправильно?
Моя система работает под управлением Archlinux для всех, кто заинтересован
&
(т.е../a.out &
), чтобы вы могли ввести новые переменные в том же сеансе? - person Mike   schedule 20.06.2013getenv("MYVARIABLE")
должен отображаться на экране. Пока я не настрою поддержку терминала в диспетчере рабочего стола, я не смогу сделать что-то подобное. - person Freesnöw   schedule 20.06.2013