我尝试在Visual Studio 2008下的cl.exe下使用getenv和setenv。 getenv工作,但setenv没有。经过一番浏览后,我发现_putenv是另一种选择。
以下代码段不起作用
#include <stdio.h>
#include <stdlib.h>
int main()
{
_putenv("Hello=123");
}
C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC>putenv.exe
C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC>echo %Hello%
%Hello%
可能是什么原因?
答案 0 :(得分:4)
_putenv()
修改正在运行的进程的环境,而不是父进程,这是您在echo
程序完成后使用putenv.exe
命令查看的内容。
答案 1 :(得分:1)
尝试在putenv
之后开始新的shell。它影响着未来。当一个过程结束时,它会回到它来自的过去环境。