哪个是包含getenv()所有环境变量的全局变量?在什么glibc文件中这个var填充了env vars?
我相信它是**环境但是当我在bash中设置env var时它只输出SSH_AGENT_PID env var.为什么设置SSH_AGENT_PID,为什么它是唯一设置的?
DOCUMENT_ROOT='/foopath/'; export DOCUMENT_ROOT
int main(void)
{
extern char **environ;
printf("%s\n", *environ); // outputs: SSH_AGENT_PID=2822
}
char **environis NULL-terminated字符串数组,所以你应该尝试:
extern char **environ;
char **p;
for (p = environ; *p; p++) {
printf ("%s\n", *p);
}
Run Code Online (Sandbox Code Playgroud)
换句话说,environ[0]是指向第一个env变量,environ[1]指向第二个等的指针.environ数组中的最后一个元素是NULL.