This question already has answers here:
Printing all environment variables in C / C++
(9个答案)
6年前关闭。
我正在尝试编写自己的getenv版本。我尚未开始,所以我想首先了解环境。
如果是全局变量,为什么不能在函数中打印它?是字符串还是字符数组?为什么环境是双指针?谢谢。
每个字符串都是
但是,
(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");
}
最佳答案
environ
是char**
。它指向一个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