gpt4 book ai didi

c - 如何检查是否从 C 程序设置了环境变量

转载 作者:太空宇宙 更新时间:2023-11-04 05:12:51 28 4
gpt4 key购买 nike

我目前正在编写一个程序,如果设置了环境变量,我想打印特殊输出。

例如,假设我想要环境变量"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 程序设置的经验?我什至在提取单个环境变量时遇到问题,这使我无法这样做。

最佳答案

getenv 在要求的环境变量未设置时返回 NULL。因此,您的支票可能只是

if(getenv("DEBUG")) {
// DEBUG is set
} else {
// DEBUG is not set
}

请注意,shell 和环境变量之间存在差异;如果你想让一个变量出现在 shell 子进程的环境中,你必须在 shell 中export它:

export DEBUG=some_value

DEBUG=some_value
export DEBUG

仅仅说 DEBUG=some_value 是不够的。

关于c - 如何检查是否从 C 程序设置了环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28004602/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com