2014-04-24 2 views
0

мне нужно использовать переменную среды для проекта C, так что я сделал это в терминале:Linux Enviroment Variable и C GETENV проект()

export FILE_CONFIG="/home/pc/file.conf" 

file.conf файл, который я создал ,

Если я делаю env в терминале, я вижу «FILE_CONFIG» в списке со своим значением (/home/pc/file.conf). Я хочу назначить path_to_config -> /home/pc/file.conf SO в программе .C я сделал это:

#include <stdio.h> 
#include <stdlib.h> 

int main(int argc, char *argv[]) { 

    char* path_to_config = getenv("FILE_CONFIG"); 

Но getenv не возвращает путь к FILE_CONFIG .. Когда я смотрю в режиме отладки, значение path_to_config равно 0x0. Я пробовал с другими переменными среды, но я не мог этого сделать, особенно в том, что я экспортировал.

+1

Чтобы проверить, выполните 'system (" env ")' непосредственно перед вашим 'getenv'. – cnicutar

+2

Просто убедитесь, что оболочка, в которой вы устанавливаете переменную, должна быть такой же, как вы вызываете свой двоичный код. Это так? –

+0

ну, он печатает список, но я не могу видеть переменную окружения – ank3r

ответ

1

Позвольте мне угадать: вы запускаете свою программу из среды IDE. Окружающая среда, которую IDE предоставляет вашей программе, полностью не связана с средой, в которой вы экспортируете свою переменную. Предложение: запустите свою программу из командной строки на терминале, в котором вы сделали export. Вы увидите свою переменную в порядке.

Затем выполните поиск в среде IDE, чтобы указать среду для целевой программы и установить ее там.

При необходимости добавьте строку экспорта в сценарий запуска вашей оболочки.

+0

да! это Eclipse. Я могу указать среду для целевой программы, но только в режиме отладки можно увидеть результаты. – ank3r

 Смежные вопросы

  • Нет связанных вопросов^_^