我目前正在开发一个程序,如果设置了环境变量,我想打印特殊输出。
例如,假设我想要环境变量"DEBUG"。
在我的 bash 命令提示符中,我DEBUG通过键入以下命令进行设置:
DEBUG=
然后在我的 C 程序中,我可以通过打印出char **environ. DEBUG确实出现在此环境打印输出中。
但是,我不知道如何检索此环境变量以进行条件检查。我试过像这样使用 getenv 函数:
getenv("DEBUG")
Run Code Online (Sandbox Code Playgroud)
如果我尝试打印出如下所示的输出,则会出现段错误:
printf("get env: %s\n", getenv("DEBUG"));
Run Code Online (Sandbox Code Playgroud)
我什至在一个已知的环境变量上试过这个,比如"HOME":
printf("get env: %s\n", getenv("HOME"));
Run Code Online (Sandbox Code Playgroud)
这仍然会产生段错误。
有没有人有任何经验检查是否从 C 程序设置了环境变量?我什至在拉出一个阻止我这样做的环境变量时也遇到了问题。