我一直在努力取得任何进展,我可以将一个公司产品写入Unix,严重依赖于Unix兼容的版本。 这不太好。 我有两个不同的发展分支,有两个不同的问题。 在这个问题中,我必须移植Unix clearenv()函数的基本封装,它完全清除表中的所有用户环境variables。 可能出于安全原因,我找不到与Windows的clearenv()等效,并且我find/解决的一个解决scheme将清除进程中的所有环境variables,包括系统variables。 我想要一个解决scheme,将摆脱所有的用户环境variables,但不接触系统的。
我知道这可能是一个愚蠢的事情,但它是在代码中,所以我必须尝试移植它。
另外,如果有帮助,我正在MinGW下编译
从CreateEnvironmentBlock文档:
hToken [in,optional] […]如果此参数为NULL,则返回的环境块仅包含系统变量。
通过过程环境块并将其更改为与此函数返回的“仅系统”块匹配仍然有点麻烦,但至少您将获得必要的信息。
你可以编写一个简单的函数来删除当前的环境变量。
首先,您可以使用CreateEnvironmentBlock函数来检索包含整个键数组的块。
其次,使用函数SetEnvironmentVariable将NULL的值全部循环,这将删除环境值。