【发布时间】:2015-01-17 21:37:02
【问题描述】:
我目前正在开发一个程序,如果设置了环境变量,我想打印特殊输出。
例如,假设我想要环境变量"DEBUG"。
在我的 bash 命令提示符中,我通过输入以下命令来设置 DEBUG:
DEBUG=
然后在我的 C 程序中,我可以通过打印出 char **environ 的所有内容来验证此环境变量是否已设置。 DEBUG 确实出现在此环境打印输出中。
但是,我不知道如何检索此环境变量以进行条件检查。我试过像这样使用函数 getenv:
getenv("DEBUG")
如果我尝试像下面这样打印出这个输出,我会得到一个段错误:
printf("get env: %s\n", getenv("DEBUG"));
我什至在"HOME"这样的已知环境变量上尝试过这个:
printf("get env: %s\n", getenv("HOME"));
仍然会产生段错误。
有没有人有任何检查环境变量是否是从 C 程序中设置的经验?我什至遇到了问题,甚至拉动了一个阻止我这样做的环境变量。
【问题讨论】:
-
您使用的是什么操作系统?
-
我在 OSX 上,但我也在 unix/linix 服务器上进行测试
标签: c unix environment-variables