显示名称= C ++中所有环境变量的值

时间:2011-04-06 18:18:40

标签: c++

新手问题:

我想将我的进程的每个环境变量的名称和值打印到stdout。以下示例打印每个环境变量的值,但不打印名称。我怎样才能另外打印这个名字?

int main(int argc, char **argv, char** envp) {
  char** env;
  for (env = envp; *env != 0; env++) {
    cout << *env << "\n";
  }
}

1 个答案:

答案 0 :(得分:2)

万一这不会被关闭,人们会在这里结束。通常,* envp指向的每个值都是以下形式的字符串:

<EnvironmentVariableName>=<EnvironmentValue>

如(取自ideone.com):

TMPDIR=/home/Cat5sW
PATH=/usr/local/bin:/usr/bin:/bin
PWD=/home/Cat5sW
LANG=en_US.UTF-8
SHLVL=0
HOME=/home/Cat5sW

然后,您需要根据'='char。

拆分字符串

正如John上面所指出的,对于某些os /编译器组合,这可能会有所不同(尽管我从未遇到过它们)。