我使用 GetEnvironmentString()
获取程序的环境变量。
每个程序的第一个结果都是这样的:
=::=::\
我不知道这是什么意思?
代码如下:
LPWCH lpEnvString=GetEnvironmentStringsW();
LPWSTR lpszVariable=(LPWSTR)lpEnvString;
while (*lpszVariable)
{
wprintf(L"%s\n",lpszVariable);
lpszVariable+=wcslen(lpszVariable)+1;
}
FreeEnvironmentStringsW(lpEnvString);
此外,如果我们开始列出此类变量,我们会看到类似以下内容:
=::=::\
=C:=C:\Users\username\value
=ExitCode=00000001
ALLUSERSPROFILE=C:\ProgramData
APPDATA=C:\Users\artik\AppData\Roaming
CommonProgramFiles=C:\Program Files (x86)\Common Files
CommonProgramFiles(x86)=C:\Program Files (x86)\Common Files
CommonProgramW6432=C:\Program Files\Common Files
...
另一方面,getenv("=ExitCode")
或 getenv("=C:")
返回 NULL。
您能否提供此“功能”的适当文档?
例如 getenv()
会忽略此类字符串以及应如何处理此类值?
最佳答案
它们是模拟 ms-dos 目录处理的 cmd.exe 的遗留物,它们基本上没有什么用处,而且比任何东西都更古老。本质上,它会跟踪每个驱动器的当前目录,并作为环境变量保存,以便轻松传递给其他进程。
关于windows - 这些奇怪的环境变量是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10431689/