2.2、环境变量

作者: 奥斯特洛司机 | 来源:发表于2019-03-22 10:20 被阅读0次

    看环境变量:env

    子进程继承父进程的环境

    1、每个程序都会接收到一张环境表,是一个以NULL指针结尾的字符指针数组。
    2、全局变量char ** environ保存环境表的起始地址。


    2.2、环境变量

    //env_list.c,打印环境变量,修改环境变量是修改当前进程的拷贝,
    只会影响到调用的当前进程

    #include <stdio.h>
    #include <stdlib.h>  //声明了putenv等函数
    
    void printenv(void){
          printf("----------环境变量----------");
          extern char** environ; //对已有的全局变量的外部声明,不像errno,errno已经在头文件errno.h声明,可以直接使用
          char **env;
          for(env = environ; env && *env; ++env)   //env和env的目标不能为空
              printf("%s\n", *env);   //打印一级指针,即目标
          printf("--------------------------------");
    }
    
    int main(void){
        char env[256];
        const char * name = "MYNAME";
        //添加环境变量
        sprintf(env, "%s = minwei", name);
        putenv(env);    //put完再打印
        printf("%s=%s\n", name, getenv(name));  //getenv取出单个环境变量
        //修改环境变量
        sprintf(env, "%s=bjarne", name);
        putenv(env);  //修改环境变量,不存在就添加,存在就覆盖
        setenv(name "minwei", 0);  //不存在就添加,存在不覆盖
        setenv(name "minwei", 1);  //不存在就添加,存在就覆盖
        unsetenv(name);//删除环境变量
        clearenv();//清空环境变量
        printenv();
        return 0;
    }
    

    相关文章

      网友评论

        本文标题:2.2、环境变量

        本文链接:https://www.haomeiwen.com/subject/boxlvqtx.html