函数定义:char* getenv (const char* name);
头文件:<stdlib.h>
函数说明:getenv函数用来获取环境变量名为name(函数的参数)的内容(或者称为value值)
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
char *path;
path=getenv("PATH");
if(path!=NULL)
printf("%s\n",path);
return 0;
}
函数定义:int setenv(const char *name,const char * value,int overwrite);
头文件:<stdlib.h>
函数说明:setenv函数用来设置环境变量为name的内容(value);
overwrite参数不为0时,原环境变量若有内容,则将内容变更为value值;
overwrite参数为0时,原环境变量若有内容,则内容保持原样,不做修改。
返回值:执行成功返回0,错误返回非0;
#include <stdio.h>
#include <stdlib.h>
int main()
{
printf("%s\n",getenv("USER"));
setenv("USER","code",0);
printf("%s\n",getenv("USER"));
setenv("USER","code",1);
printf("%s\n",getenv("USER"));
return 0;
}
输出结果:
huststephen
huststephen
code
注意:此处对环境变量的修改,不影响全局,即在shell环境下输入"echo $USER",结果仍为huststephen.在下篇博文中将会详细描述原因。
函数定义:int unsetenv(const char *name);
头文件:<stdlib.h>
函数说明:删除环境变量name的定义,即使name不存在也不会出错
#include <stdio.h>
#include <stdlib.h>
int main()
{
printf("%s\n",getenv("USER"));
unsetenv("USER");
if(getenv("USER")==NULL)
printf("USER is NULL\n");
return 0;
}
结果输出:
huststephen
USER is NULL
函数定义:int putenv(const char * string);
头文件:<stdlib.h>
函数说明:putenv用来增加或者修改环境变量
参数说明:string的格式为“name=value”
若原先环境变量name存在,则会修改环境变量,否则即为新增
#include <stdio.h>
#include <stdlib.h>
int main()
{
printf("%s\n",getenv("USER"));
putenv("USER=hust");
printf("%s\n",getenv("USER"));
return 0;
}