getenv putenv setenv和unsetenv详解
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”); |
unsetenv:
测试例子
/** 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详解相关推荐
- linux getenv函数 get,linux之getenv putenv setenv和unsetenv详解
1.getenv函数 头文件:#include 函数原型: char * getenv(const char* name); 函数说明:getenv()用来取得参数name环境变量的内容. 函数参数: ...
- maya putenv 命令_linux下getenv putenv setenv和unsetenv
发布时间:2015-06-30 18:08:44 getenv: 阅读(1794) | 评论(0) | 转发(0) 发布时间:2015-06-16 17:41:39 多播的程序设计使用setsocko ...
- getenv、setenv函数
getenv(取得环境变量内容) 相关函数 putenv,setenv,unsetenv 表头文件 #include<stdlib.h> 定义函数 char * getenv(const ...
- getenv、setenv函数(获取和设置系统环境变量) 与 环境变量
1.getenv() 函数名: getenv 功 能: 从环境中取字符串,获取 环境变量的值 头文件: stdlib.h 用 法:char *getenv(char *envvar); 函数说明:g ...
- c语言中getenv的作用,C语言putenv()函数和getenv()函数的使用详解
C语言putenv()函数和getenv()函数的使用详解 C语言putenv()函数:改变或增加环境变量头文件: #include4 定义函数: int putenv(const char * st ...
- getenv、setenv和putenv实践
一 简介 获取环境变量函数:getenv #include <stdlib.h> char *getenv(const char *name); char *secure_getenv(c ...
- python import io_详解Python IO编程
文件读写 读文件 try: # windows下utf8 f = open('./README.md', 'r', encoding='utf8', errors='ignore') print(f. ...
- python之sys模块详解_(转)python之os,sys模块详解
python之sys模块详解 原文:http://www.cnblogs.com/cherishry/p/5725184.html sys模块功能多,我们这里介绍一些比较实用的功能,相信你会喜欢的,和 ...
- linux下/etc目录详解
Linux /etc目录详解 /etc目录 包含很多文件.许多网络配置文件也在/etc 中. /etc/rc or/etc/rc.d or/etc/rc*.d 启动.或改变运行级时运 ...
最新文章
- 官方乌镇定调互联网金融,P2P、众筹专项对待
- MVC项目实践,在三层架构下实现SportsStore-03,Ninject控制器工厂等
- maven 常用的插件
- 【php】正则无法截取\反斜杠的解决方法
- GitLab结合Eclipse的简单使用 - 20190211
- 实验吧—Web——WP之 Guess Next Session
- synchronized 中的 4 个优化,你知道几个?
- 第一:Postman安装及使用(超详细)
- HDU_1711 Number Sequence(KMP)
- Linux 中的旧扣簧键盘(Bucklespring 键盘)声音
- matlab的vitdec,通信原理MATLAB仿真教程课件第9章 信道容量和编码.ppt
- 电商产品设计:如何设计产品分销体系
- Vcenter证书过期处理----Vcenter无法登录,“根证书错误”,“签名证书无效”,“503 service not available”
- Interval 类型总结
- kettle与MySQL数据库建立连接教程
- 【C#】数字图像识别
- 如何通过OKR工具帮助日常工作落地
- python整段注释_python段注释
- 基于html篮球网页游戏,分享一款在线打篮球游戏网页源码
- 如何用SWOT进行自我分析?促进职场发展,改善精神内耗
热门文章
- 人生不是故事,人生是世故,摸爬滚打才不会辜负功名尘土
- 浙江大学 计算机学院 交互设计,浙江大学交互设计考研经历分享(原来跨考这么受欢迎)...
- 印象笔记,幕布, Effie 哪个适合公众号主?
- 高新技术企业认定之材料错误篇!
- 尽管有节制的努力,pinterest仍保留着年轻女孩的反色情模因图片
- mysql+php+模板+条目_html模板
- [os]os vmware 手机连接
- 段码屏中液晶相与相变的含义?
- 【Android】Android源码下载
- 个人怎样注册公司,注册公司流程是什么?