对环境变量的操作需要引用stdlib.h函数
getenv("HOME");获取$HOME的值
putenv("HOME=/home/admin");设置环境变量的值
setenv("HOME","home/admin",0);第三个参数为0则不覆盖原值,为1则覆盖
另外学习了一个新的函数,perror("提示信息:");
执行该函数,会先输出括号中的字符串,然后将错误信息继续输出,但是对于上面获取环境变量的函数来说,无论是否存在该环境变量,都会返回success。所以对于perror函数的学习,仍待后面的程序中继续实验。
所有的对于环境变量的操作,只会影响到当前进程和子进程,不会影响到父进程和系统的环境变量表。
[cce_cpp]
#include<stdio.h>
#include <stdlib.h>
extern ** environ;//环境变量表//windows下无法使用
int main()
{
char *p;
int i;
/* for(i=0;environ[i]!=NULL;i++)
printf("each:%s\n",environ[i]);//输出所有的环境变量*/
p = getenv("HOME");
if(p==NULL)
{
perror("fail to getenv:");
exit(1);
}
printf("HOME is %s\n",p); //通过putenv修改 if(putenv("HOME=/home")==-1) { perror("fail to putenv"); exit(1); } p = getenv("HOME"); if(p==NULL) { perror("fail to getenv:"); exit(1); } printf("HOME is %s\n",p);
//通过setenv修改
if(setenv("HOME","/home/1",1)==-1)//0不覆盖,1覆盖
{
perror("fail to putenv");
exit(1);
}
p = getenv("HOME");
if(p==NULL)
{
perror("fail to getenv:");
exit(1);
}
printf("$HOME is %s\n",p);
}
[/cce_cpp]