gpt4 book ai didi

c - 在 Linux 中打印环境变量

转载 作者:太空宇宙 更新时间:2023-11-04 09:52:14 31 4
gpt4 key购买 nike

我是 Linux 新手。我遇到了这段代码来打印环境变量。这让我有点困惑。这段代码如何打印环境变量?

#include <stdio.h>

extern char **environ;
int main()
{
char **var;
for(var=environ; *var!=NULL;++var)
printf("%s\n",*var);

return 0;
}

这里的extern是什么?

最佳答案

如果你不知道extern是什么意思,请找本书学C。它只是意味着“在其他地方定义,但在这里使用”。

environ 全局变量在 POSIX 全局变量中是唯一的,因为它没有在任何 header 中声明。它就像程序中的 argv 数组,一个字符指针数组,每个字符指针指向一个 name=value 格式的环境变量。该列表由空指针终止,就像 argv 一样。不过,环境并不重要。

for (var = environ; *var != NULL; ++var)
printf("%s\n", *var);

因此,在第一次迭代中,var 指向第一个环境变量;然后它递增到下一个,直到值 *var (a char *) 为 NULL,表示列表结束。

这个循环也可以写成:

char **var = environ;
while (*var != 0)
puts(*var++);

关于c - 在 Linux 中打印环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9662417/

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