每个程序都会接收到一张环境表,这个一个全局变量,验证如下:
//env_show
#include <stdio.h>
extern char** environ;
int main(void)
{
int i;
for(i=0;environ[i]!=NULL; i++)
{
printf("%s\n",environ[i]);
}
return 0;
}
一个可能的实验结果
> gcc -Wall env_show.c -o env_show
>
> ./env_show | grep -w PATH
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
> ./env_show | grep -w HOME
HOME=/home/zhy
另外,在实际使用中,要尽量使用getenv和setenv函数来操作(stdlib.h),而不是直接操作全局变量