以编程方式删除环境变量

时间:2010-07-08 15:23:33

标签: c++ visual-studio-2008 unit-testing environment-variables

我需要为某些C ++代码编写单元测试,以检查是否存在环境变量。我正在使用MSVS 2008和gtest作为我的框架。我使用putenv添加环境变量,我使用getevn检查环境变量,但我无法弄清楚如何删除它,以便没有其他测试会看到它。我意识到这可能很容易,但我在互联网上找不到答案。感谢

4 个答案:

答案 0 :(得分:11)

再次调用putenv指定"SOME_VAR="作为参数将删除环境变量SOME_VAR。顺便说一句,Microsoft建议使用_putenv,因为putenv已被弃用。

答案 1 :(得分:2)

你总是可以fork / exec一个子进程来做putenv / getenv测试,然后当它终止时,周围没有任何杂散环境。

答案 2 :(得分:2)

如何将env var设置为空字符串?

从cmd.exe,这可以工作:

set SOMEVAR=something
echo %SOMEVAR%
set SOMEVAR=
echo %SOMEVAR%

最后一个显示它已被删除。

答案 3 :(得分:0)

您可以使用unsetenv功能。

如果vc2008缺少此功能,您可以使用getenv_s直接访问环境,并手动删除该条目,模拟unsetenv