1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > linux c 环境变量函数 getenv putenv 简介

linux c 环境变量函数 getenv putenv 简介

时间:2019-04-26 22:37:50

相关推荐

linux c 环境变量函数 getenv putenv 简介

环境变量相关函数:

getenv()和putenv()

程序功能:编写一个程序来打印所选的任意环境变量的值;如果给程序传递第二个参数,还设置环境变量的值

#include <stdlib.h>#include <stdio.h>#include <string.h>/************************argc:参数个数(包含程序名)argv:代表参数自身的字符串数组;argv[0]为程序名,argv[1]为第1个实际参数 argv[2]为第2个实际参数 ************************/int main(int argc, char *argv[]) {char *var, *value;if(argc == 1 || argc > 3) { //确保实际参数只有1个(argc=2)或2个(argc=3)fprintf(stderr,"usage: environ var [value]\n");exit(1);}var = argv[1]; //第一个实际参数的参数名value = getenv(var); //第一个实际参数的参数值if(value) //判断参数值是否存在printf("Variable %s has value %s\n", var, value);elseprintf("Variable %s has no value\n", var);if(argc == 3) { //如果第二个实际参数存在char *string; value = argv[2]; //获取第2个参数的值string = malloc(strlen(var)+strlen(value)+2); //为第二个参数的“参数名=参数值”开辟空间(+2表示“=”和空格)if(!string) { //如果开辟空间失败fprintf(stderr,"out of memory\n");exit(1);}strcpy(string,var); strcat(string,"=");strcat(string,value);printf("Calling putenv with: %s\n",string);if(putenv(string) != 0) { //putenv()成功返回0.若环境变量设置失败fprintf(stderr,"putenv failed\n");free(string); //释放开辟的内存空间exit(1);}value = getenv(var);if(value)printf("New value of %s is %s\n", var, value);elseprintf("New value of %s is null??\n", var);}exit(0);}

注意:环境仅对程序本身有效。在程序里做的环境变量更改不会反映到外部环境,这是因为变量的值不会从子进程(你的程序)传播到父进程(shell)

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。