我使用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()忽略这样的字符串,以及如何处理这样的值?
它们是从cmd.exe中扫描出来的,用于处理ms-dos目录,它们基本上没有什么用处,比任何东西都更古老.本质上,它跟踪每个驱动器当前目录,并保持为一个环境变量,以便轻松传递给其他进程.