网络通讯编程

2.2、环境变量

2019-03-22  本文已影响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;
}
上一篇下一篇

猜你喜欢

热点阅读