windows - 这些奇怪的环境变量是什么?

标签 windows winapi environment-variables

我使用 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/

相关文章:

c# - 完整 Windows 桌面的实时视频处理

.net - 在 .NET 中写入日志 - 权限问题

c++ - 从 Windows 上的文件中删除前 N 个字节的最有效方法是什么?

TCL 检查环境变量

r - 如何在文件名构造中调用 R 主目录?

linux - 如何在 Windows 10 下自动设置和配置适用于 Linux 的 Windows 子系统?

c++ - 作为计划任务运行的 .exe 不写入文件

c++ - 什么是 _WIN32_WINNT,它是如何工作的?

c++ - #define - 预期和表达式 C++

environment-variables - 锥体和console2模拟器未获取新的路径变量