2014-02-02 2 views
1

Я новичок в linux.I есть проблема с доступом к моей определенной переменной varibales в программе на C.Доступ к пользовательским переменным среды в программе C в Linux?

я определил одну переменную в командной терминале Linux следующим образом:

$ ExampleVar="Hi" 

И в программе C Я пытаюсь получить к нему доступ с помощью

getenv("ExampleVar") 

Но это нуль каждый раз. Когда я пытаюсь получить доступ к другим переменным среды, таким как USER, getenv дает правильные результаты. Я также пробовал extern коллекция unistd.h

Он также не показывает ExampleVar.

Пожалуйста, помогите мне.

+0

См. Http://stackoverflow.com/questions/12561654/bash-difference-between-export-k-1-vs-k-1. – jarmod

ответ

2

Это зависит от вашей оболочки. Если вы используете bash -см bash(1) для более- типа

export EXAMPLEVAR="Hi" 

в оболочке (например, в терминале перед запуском программы), а затем использовать getenv("EXAMPLEVAR") в программе C. См getenv(3)

Если вы не export Баш переменную foo, вы все еще можете использовать $foo в ваших командах Баш, но getenv("foo") потерпит неудачу и возвращать NULL внутри скомпилированных программ C.

Обычно переменные окружения имеют полные имена капиталовложений. См. environ(7)

См. Также env(1) команда.

+4

С помощью bash вы также можете префикс переменной в командной строке 'EXAMPLEVAR = Hi./Myprog' – kichik

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

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