gpt4 book ai didi

c - getenv() 的全局变量?

转载 作者:行者123 更新时间:2023-12-02 08:58:23 27 4
gpt4 key购买 nike

哪个全局变量保存了 getenv() 的所有环境变量?这个变量在哪个 glibc 文件中填充了环境变量?

我相信它是 **environ,但是当我在 bash 中设置环境变量时,它只输出 SSH_AGENT_PID 环境变量。为什么要设置 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 **environ 是以 NULL 结尾的字符串数组,因此您应该尝试:

extern char **environ;
char **p;
for (p = environ; *p; p++) {
printf ("%s\n", *p);
}

换句话说,environ[0] 是指向第一个环境变量的指针,environ[1] 是指向第二个环境变量的指针,依此类推。environ 中的最后一个元素> 数组为NULL

关于c - getenv() 的全局变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3127614/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com