This question already has answers here:
Printing all environment variables in C / C++
                                
                                    (9个答案)
                                
                        
                                6年前关闭。
            
                    
我正在尝试编写自己的getenv版本。我尚未开始,所以我想首先了解环境。

如果是全局变量,为什么不能在函数中打印它?是字符串还是字符数组?为什么环境是双指针?谢谢。

#include <iostream>
#include <string>
#include <stdlib.h>
void myenv(char*);

void myenv(char* name)
{
std::cout<<environ;
}

int main(int argc, char** argv, char** environ)
{
myenv("PATH");
}

最佳答案

environchar**。它指向一个char*数组,每个数组都指向一个char字符串。所以这就像一个字符串数组。例如,environ[0]是一个以空字符结尾的字符串。尝试打印出来:

std::cout << environ[0];


每个字符串都是name=value形式的环境变量。它们对应于当前过程的环境变量。

但是,environ不是C ++的功能,并且不可移植。它来自POSIX定义的unistd.h标头。

关于c++ - 有人可以向我解释environ变量在C++中如何工作吗? ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14780059/

10-10 13:42