获取环境变量
1、命令行第三个参数:
1 #include<stdio.h>
2 int main(int argc,char* argv[],char* env[]){
3 int i=0;
4 for(;env[i]!=NULL;i++){
5 printf("%s\n",env[i]);
6 }
7 return 0;
8 }
2、通过第三方变量environ获取
1 #include<stdio.h>
2 int main(int argc,char* argv[]){
3 extern char **environ;
4 int i=0;
5 for(;environ[i]!=NULL;i++){//之所以利用!=null来判定源于环境变量的组织方式---环境表(字符指针数组,每个指针指向以‘\0’结尾的字符串)
6 printf("%s\n",environ[i]);
7 }
8 return 0;
9 }
3、通过getenv()函数获得
获取HOME环境变量的值
1 #include<stdio.h>
2 #include<stdlib.h>
3 int main(){
4
5 printf("%s\n",getenv("HOME"));
6 return 0;
7 }
引出set
从set来查找可以看到MYENV_VAL,由此对比env只输出环境变量。
set能够查看到这个变量,由于MYENV_VAL是本地环境变量,(unset可以取消)所以经过export导成了环境变量。而且./getpath后也能看到MYENV_VAL=4321aaaa,这就体现了环境变量的全局属性,他可以被子进程继承下去。