getenv:

定义函数 char * getenv(const char *name);
表头文件 #include<stdlib.h> 
函数说明 getenv()用来取得参数name环境变量的内容。
参数 name为环境变量的名称,如果该变量存在则会返回指向该内容的指针。环境变量的格式为name=value。
返回值 执行成功则返回指向该内容的指针,找不到符合的环境变量名称则返回NULL。 
范例 #include<stdlib.h> 
mian() 

     char *p; 
     if((p = getenv(“USER”))) 
     printf(“USER=%sn”,p); 

执行 USER = root 

putenv:

定义函数 int putenv(const char * string);
表头文件 #include<stdlib.h> 
函数说明 putenv()用来改变或增加环境变量的内容。
参数 string的格式为name=value,如果该环境变量原先存在,则变量内容会依参数string改变,否则此参数内容会成为新的环境变量。
错误代码 ENOMEM 内存不足,无法配置新的环境变量空间。
返回值 执行成功则返回0,有错误发生则返回-1。
范例 #include<stdlib.h> 
main() 

    char *p; 
    if((p = getenv(“USER”))) 
    printf(“USER =%sn”,p); 
    
    putenv(“USER=test”); 
    printf(“USER+5sn”,getenv(“USER”)); 
 } 
 执行  USER=root USER=root

setenv:

定义函数 int setenv(const char *name,const char * value,int overwrite); 
表头文件 #include<stdlib.h> 
函数说明 setenv()用来改变或增加环境变量的内容。
参数 name为环境变量名称字符串。 value则为变量内容,overwrite用来决定是否要改变已存在的环境变量。如果overwrite不为0,而该环境变量原已有内容,则原内容会被改为参数value所指的变量内容。如果overwrite为0,且该环境变量已有内容,则参数value会被忽略。 
错误代码 ENOMEM 内存不足,无法配置新的环境变量空间。
返回值 执行成功则返回0,有错误发生时返回-1。 
范例 #include<stdlib.h> 
main()

      char * p; 
      if((p=getenv(“USER”))) 
      printf(“USER =%sn”,p); 
      
      setenv(“USER”,”test”,1);

printf(“USER=%sn”,getenv(“USEr”)); unsetenv(“USER”); 
      printf(“USER=%sn”,getenv(“USER”)); 

执行 
USER = root 
USER = test 
USER = (null)

unsetenv:

int unsetenv(const char *name); 
删除name的定义,即使不存在也不算出错。

测试例子

/** char * getenv(const char *name)    <stdlib.h>       获取名为name环境变量的值* int putenv(char *str)              <stdlib.h>       将变量名为型为: “name=value” 的字符串放入环境变量列表中* int setenv(const char* name,const char* valuek,int rewrite)   <stdlib.h>* int unsetenv(const char *name)     <stdlib.h>        删除name的定义,即使不存在这种定义,也不算出错。* ** setenv:* 将名为name,对应值为value的环境变量放入环境变量列表中.* 如果rewrite值为0且名为name的环境变量已经存在,则先删除该变量的现有定义;* 如果rewrite值为0,则不删除起原来定义,也不设置新的vaule值,而且也不出错;* setenv会分配内存空间,所分配的内存用来存储"name=value";* 而putenv是可以将已经在程序中定义的形如"name=value"的字符串变量放入到环境变量表中,此时不再重新分配内存空间,也可以将形如"name=value"的字符串常量当作实参;因此如果实参是程序中定义的变量,则不应该为局部变量。* */#include <stdlib.h>
#include <stdio.h>//定义全局变量var作为实参
char *var="name=shexinwei";int main()
{//使用putenv设置新环境变量,使用全局变量var作为实参if(0!=putenv(var)){printf("putenv error!!\n");return -1;}//使用putenv设置新环境变量,使用常量字符串: sex=maleif(0!=putenv("sex=male")){printf("putenv error!!\n");return -1;}//setenv的使用示例if(0!=setenv("university","xidian",0)){printf("setenv error!!\n");return -1;}//获取通过putenv设置的环境变量nameprintf("getenv(name): %s\n",getenv("name"));//获取通过putenv设置的环境变量sexprintf("getenv(sex): %s\n",getenv("sex"));//获取通过setenv设置的环境变量universityprintf("getenv(university): %s\n",getenv("university"));//删除环境变量:nameunsetenv("name");printf("getenv after unset: %s\n",getenv("name"));return 0;
}

运行结果:

getenv(name): shexinwei
getenv(sex): male
getenv(university): xidian
getenv after unset: (null)

getenv putenv setenv和unsetenv详解相关推荐

  1. linux getenv函数 get,linux之getenv putenv setenv和unsetenv详解

    1.getenv函数 头文件:#include 函数原型: char * getenv(const char* name); 函数说明:getenv()用来取得参数name环境变量的内容. 函数参数: ...

  2. maya putenv 命令_linux下getenv putenv setenv和unsetenv

    发布时间:2015-06-30 18:08:44 getenv: 阅读(1794) | 评论(0) | 转发(0) 发布时间:2015-06-16 17:41:39 多播的程序设计使用setsocko ...

  3. getenv、setenv函数

    getenv(取得环境变量内容) 相关函数 putenv,setenv,unsetenv 表头文件 #include<stdlib.h> 定义函数 char * getenv(const ...

  4. getenv、setenv函数(获取和设置系统环境变量) 与 环境变量

    1.getenv() 函数名: getenv 功 能: 从环境中取字符串,获取 环境变量的值 头文件:  stdlib.h 用 法:char *getenv(char *envvar); 函数说明:g ...

  5. c语言中getenv的作用,C语言putenv()函数和getenv()函数的使用详解

    C语言putenv()函数和getenv()函数的使用详解 C语言putenv()函数:改变或增加环境变量头文件: #include4 定义函数: int putenv(const char * st ...

  6. getenv、setenv和putenv实践

    一 简介 获取环境变量函数:getenv #include <stdlib.h> char *getenv(const char *name); char *secure_getenv(c ...

  7. python import io_详解Python IO编程

    文件读写 读文件 try: # windows下utf8 f = open('./README.md', 'r', encoding='utf8', errors='ignore') print(f. ...

  8. python之sys模块详解_(转)python之os,sys模块详解

    python之sys模块详解 原文:http://www.cnblogs.com/cherishry/p/5725184.html sys模块功能多,我们这里介绍一些比较实用的功能,相信你会喜欢的,和 ...

  9. linux下/etc目录详解

    Linux /etc目录详解 /etc目录  包含很多文件.许多网络配置文件也在/etc 中.  /etc/rc   or/etc/rc.d   or/etc/rc*.d    启动.或改变运行级时运 ...

最新文章

  1. 官方乌镇定调互联网金融,P2P、众筹专项对待
  2. MVC项目实践,在三层架构下实现SportsStore-03,Ninject控制器工厂等
  3. maven 常用的插件
  4. 【php】正则无法截取\反斜杠的解决方法
  5. GitLab结合Eclipse的简单使用 - 20190211
  6. 实验吧—Web——WP之 Guess Next Session
  7. synchronized 中的 4 个优化,你知道几个?
  8. 第一:Postman安装及使用(超详细)
  9. HDU_1711 Number Sequence(KMP)
  10. Linux 中的旧扣簧键盘(Bucklespring 键盘)声音
  11. matlab的vitdec,通信原理MATLAB仿真教程课件第9章 信道容量和编码.ppt
  12. 电商产品设计:如何设计产品分销体系
  13. Vcenter证书过期处理----Vcenter无法登录,“根证书错误”,“签名证书无效”,“503 service not available”
  14. Interval 类型总结
  15. kettle与MySQL数据库建立连接教程
  16. 【C#】数字图像识别
  17. 如何通过OKR工具帮助日常工作落地
  18. python整段注释_python段注释
  19. 基于html篮球网页游戏,分享一款在线打篮球游戏网页源码
  20. 如何用SWOT进行自我分析?促进职场发展,改善精神内耗

热门文章

  1. 人生不是故事,人生是世故,摸爬滚打才不会辜负功名尘土
  2. 浙江大学 计算机学院 交互设计,浙江大学交互设计考研经历分享(原来跨考这么受欢迎)...
  3. 印象笔记,幕布, Effie 哪个适合公众号主?
  4. 高新技术企业认定之材料错误篇!
  5. 尽管有节制的努力,pinterest仍保留着年轻女孩的反色情模因图片
  6. mysql+php+模板+条目_html模板
  7. [os]os vmware 手机连接
  8. 段码屏中液晶相与相变的含义?
  9. 【Android】Android源码下载
  10. 个人怎样注册公司,注册公司流程是什么?