【问题标题】:Enumerate environment variables in C++ (cross-platform)在 C++ 中枚举环境变量(跨平台)
【发布时间】:2012-05-02 14:41:04
【问题描述】:

只是一个简单的问题,我希望以前没有人问过这个问题。我想知道一种列出进程的所有分配环境变量的方法。我需要它跨平台跨 Windows 和类 UNIX 操作系统。

我知道getenv(),但这只会检索变量的值。我需要生成它们的列表。

感谢您的帮助!

【问题讨论】:

  • 不完全是一个重复,这需要一个 POSIX 方法。另一个问题的答案是非标准的,但不接受的答案是 POSIX。
  • “跨 Windows 和类 UNIX 操作系统。”

标签: c++ cross-platform environment-variables


【解决方案1】:

您似乎只是在寻找 main 的第三个参数,一个进程环境变量的 char**。

给你:Main function

该表单的原型是int main(int argc,char** argv,char** env)

【讨论】:

  • @Electro OP 特别提到了 Windows 和 UNIX,根据 wiki 页面,它适用于它们。
  • 如果这不符合要求,我深表歉意。可能是我的经验有限,但是在各种unixen、os-x和windows之间,我还没有遇到过不能用的平台。
  • 如果您需要非 ANSI 字符,它确实在 Windows 上工作。为此,您必须使用int wmain(int, wchar_t**, wchar_t**)
【解决方案2】:

您可能正在寻找全局变量environ

【讨论】:

  • 从我看到的所有指标来看,这是 POSIX。
  • @Tibor Windows 也有它,但你不应该像 POSIX 那样声明它。在 Windows 上,它在 cstdlib 中为您声明。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-02-28
  • 2016-01-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-27
  • 2019-04-27
相关资源
最近更新 更多