gpt4 book ai didi

c - getenv() 找不到我手动设置的环境变量(我是用 C 编写的)

转载 作者:行者123 更新时间:2023-11-30 15:05:41 24 4
gpt4 key购买 nike

如果我尝试获取现有变量之一,则一切正常,但如果我尝试访问我的变量,该方法将返回 NULL。我在 Windows 10 下编写此代码:)

#include <stdio.h>
int main()
{
test1();
return 0;
}

int test1()
{
char *libvar = getenv("NS_RULEBASE_PATH");

FILE *fp;
fp = fopen("D:/debug.txt", "w+");

if (libvar) {
fprintf(fp, libvar);
fclose(fp);
}
else {
fprintf(fp, "env not set");
fclose(fp);
}

return 0;
}

enter image description here

最佳答案

作为documentation说:

getenv(): The return value is NULL if varname is not found in the environment table.

在我的电脑上,

char *libvar = getenv("USERNAME");
std::cout << libvar << std::endl;

打印我的用户名。您可以通过键入 echo %NS_RULEBASE_PATH% 来查看环境变量是否通过命令提示符设置,以查看它是否打印 %NS_RULEBASE_PATH% 的值。

编辑:正如文档所说:

getenv operates only on the data structures accessible to the run-time library and not on the environment "segment" created for the process by the operating system.

关于c - getenv() 找不到我手动设置的环境变量(我是用 C 编写的),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39717910/

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