繁体   English   中英

C ++ getenv总是返回null值

[英]C++ getenv always returns null value

我刚刚添加了环境变量“DataDir”,但getenv函数仍然返回null值。

这是我的代码:const char * ret = getenv(“DataDir”);

我重新启动了电脑,完成了。

你还记得在运行程序之前导出变量吗? 例如,如果你在linux上使用bash shell,你通常应该使用export DataDir="..."

在Windows上,如果使用系统设置窗口设置环境变量,它将不会立即传播到所有正在运行的程序。 如果“我重新启动计算机并完成了”。 意思是“重新启动计算机解决了问题”,然后我相信这解释了问题。 更改环境变量后,尝试关闭所有程序,然后启动CMD会话(或visual studio)并再次运行该程序

你在Windows上运行吗? 您是否通过控制面板设置了环境变量? 如果是这样,那么只会影响您更改设置启动的进程(启动的程序)。 如果您从命令提示符运行,并且命令提示符未继承新的环境变量,那么您的程序也不会继承它。

重新启动后,所有新进程都将继承新的环境变量。

另一方面,如果设置变量然后运行程序:

C:\>set DataDir=blah
C:\>.\my_program

然后你的程序将继承变量(但它不会在重新启动时持续存在)。

类似的考虑适用于Linux和其他系统,但细节不同。

请注意,我只是根据您报告的症状猜测您正在使用的系统。 将来,在问题中提供这些信息会有所帮助(如果不相关,我们可以忽略它)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM