简单的_putenv示例不起作用

时间:2012-10-02 09:50:37

标签: c visual-studio environment-variables

我尝试在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%

可能是什么原因?

2 个答案:

答案 0 :(得分:4)

_putenv()修改正在运行的进程的环境,而不是父进程,这是您在echo程序完成后使用putenv.exe命令查看的内容。

答案 1 :(得分:1)

尝试在putenv之后开始新的shell。它影响着未来。当一个过程结束时,它会回到它来自的过去环境。