linux系统编程之进程的环境变量

环境变量:

环境变量,是指在操作系统中用来指定操作系统运行环境的一些参数。通常具备以下特征:
① 字符串(本质) ② 有统一的格式:名=值[:值] ③ 值用来描述进程环境信息。

存储形式:与命令行参数类似。char *[]数组,数组名environ,内部存储字符串,NULL作为哨兵结尾。
使用形式:与命令行参数类似。
加载位置:与命令行参数类似。位于用户区,高于stack的起始位置。
引入环境变量表:须声明环境变量。extern char ** environ;
练习:打印当前进程的所有环境变量。

#include<stdio.h>

extern char **environ;
int main()
{
       int i =0;
       for(i=0;environ[i];i++)
       {
                 printf("%s\n",environ[i]);
               //printf("%s\n",environ[i]);
       }
       return 0;
}

环境变量的相关函数:

1 getenv函数
获取环境变量值
char *getenv(const char *name); 成功:返回环境变量的值;失败:NULL (name不存在)
练习:编程实现getenv函数。 【getenv.c】
2 setenv函数
设置环境变量的值
int setenv(const char *name, const char *value, int overwrite); 成功:0;失败:-1
参数overwrite取值:
1:覆盖原环境变量 0:不覆盖。(该参数常用于设置新环境变量,如:ABC = haha-day-night)

3 unsetenv函数
删除环境变量name的定义
int unsetenv(const char *name); 成功:0;失败:-1
注意事项:name不存在仍返回0(成功),当name命名为”ABC=”时则会出错。

#include<stdlib.h>
#include<stdio.h>
#include<string.h>

int main()
{
        char *val;
        const char *name = "ABD";

        val = getenv(name);//获取name为ABD的环境变量值
        printf("name = %s,val = %s.\n",name,val);
        setenv(name,"this is a test.",1);//设置环境变量ABD的值为“this is a test”
        val = getenv(name);
        printf("name = %s,val = %s.\n",name,val);

        int ret =  unsetenv(name);//将name的环境变量取消设置
        printf("ret = %d\n",ret);//成功返回0

        val = getenv(name);
        printf("name = %s,val = %s.\n",name,val);
        return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值