Linux下控制环境变量

来源:互联网 发布:数据挖掘的技术基础 编辑:程序博客网 时间:2024/06/03 23:01

查看环境变量

查看某一环境变量:比如我们需要查看HOME这个环境变量,我们可以在shell下直接输入echo $HOME
我们可以把所有的环境变量和环境变量的值都打印出来

打印环境变量

libc中定义的全局变量environ指向环境变量表,environ没有包含在任何头文件中,所以
在使用时 要用extern声明。

下面提供了一个程序打印环境变量

#include<stdio.h>  2 int main()  3 {  4     //libc中定义的全局变量environ指向环境变量表,environ没有包含在任何头⽂文件中,所以  5     //在使⽤用时 要⽤用extern声明。  6     extern char** environ;  7 //    while(environ)  8 //    {  9 //      printf("%s\n",*environ++); 10 //    } 11 //    printf("hah"); 12     int i = 0; 13     for(i = 0;environ[i]!=NULL;i++) 14     { 15         printf("%s\n",environ[i]); 16     } 17     return 0; 18 }

控制环境变量接口getenv,setenv,unsetenv

  • getenv()函数
#include <stdlib.h>       char *getenv(const char *name);

getenv()功能的搜索环境列表找到环境变量名称,并返回一个
指向相应值串的指针。如果没有找到则返回NULL

  • setenv()函数和unsetenv
#include <stdlib.h>       int setenv(const char *name, const char *value, int overwrite);       int unsetenv(const char *name);

setenv()是设置环境变量,如果成功则返回0,如果没有成功则返回非0

unsetenv()是删除一个环境变量

下面提供一段程序大家可以自行的测试一下

#include <stdio.h>  #include <stdlib.h>  #include <string.h>  int main(void)  {      char* val;      const char* name ="ABC";      //获取ABC环境变量的值      val = getenv(name);      printf("No.1  %s=%s\n", name, val);      //覆盖写入环境变量      setenv(name, "I amsure of that I will get it", 1);      printf("No.2%s=%s\n", name, val);      val = getenv(name);      printf("No.3%s=%s\n", name, val);      //删除一个环境变量      int ret =unsetenv("ABC");      printf("ret =%d\n",ret);      val = getenv(name);      printf("No.3 %s=%s\n",name, val);      return 0;  }  
原创粉丝点击