我使用GetEnvironmentString()
来获取程序的环境variables。
每个程序都有这样的结果:
=::=::\
我不知道这是什么意思?
这里是代码:
LPWCH lpEnvString=GetEnvironmentStringsW(); LPWSTR lpszVariable=(LPWSTR)lpEnvString; while (*lpszVariable) { wprintf(L"%s\n",lpszVariable); lpszVariable+=wcslen(lpszVariable)+1; } FreeEnvironmentStringsW(lpEnvString);
另外,如果我们开始列出这些variables,我们会看到如下内容:
=::=::\ =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。
你能否提供这个“function”的适当的文档,例如getenv()
忽略这样的string,以及如何处理这些值?
他们是从cmd.exe模拟ms-dos目录处理剩菜,他们基本上没有什么用处,而且比任何东西都更古老。 本质上,它跟踪每个驱动器的当前目录,并保存为一个环境变量,以便轻松地传递给其他进程。