新手问题:
我想将我的进程的每个环境变量的名称和值打印到stdout。以下示例打印每个环境变量的值,但不打印名称。我怎样才能另外打印这个名字?
int main(int argc, char **argv, char** envp) {
char** env;
for (env = envp; *env != 0; env++) {
cout << *env << "\n";
}
}
答案 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 /编译器组合,这可能会有所不同(尽管我从未遇到过它们)。