在Linux中的C程序中访问用户定义的环境变量?

时间:2014-02-02 20:00:21

标签: c linux bash extern

我是linux的新手。我在C程序中访问我定义的环境varibales时遇到问题。

我在linux命令终端中定义了一个变量,如下所示:

 $   ExampleVar="Hi"

在C程序中,我试图使用

访问它
getenv("ExampleVar")

但每次都是空的。当我尝试访问其他环境变量(如USER)时,getenv会给出正确的结果。我还尝试了extern

unistd.h集合

它也没有显示ExampleVar。

请帮帮我。

1 个答案:

答案 0 :(得分:2)

这取决于你的shell。如果您使用bash -see bash(1)获取更多类型

 export EXAMPLEVAR="Hi"
shell中的

(例如在运行程序之前的终端中),然后在C程序中使用getenv("EXAMPLEVAR")。见getenv(3)

如果您没有export bash变量foo,您仍然可以在bash命令中使用$foo,但getenv("foo")会失败并返回NULL来自编译的C程序。

传统上,环境变量具有完整的资本名称。见environ(7)

另见env(1)命令。