0

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

可能是什么原因?

4

2 回答 2

4

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

于 2012-10-02T09:53:38.817 回答
1

尝试在putenv. 它影响未来。当一个过程结束时,它会回到它来自的过去环境。

于 2012-10-02T09:56:50.097 回答