环境变量篇

getenv

获取环境变量内容

头文件

#include <stdlib.h>

函数原型

char * getenv(const char *name);
  • 说明:getenv() 用来获取参数 name 环境变量的内容。参数 name 为环境变量的名称,如果该变量存在则会返回指向该内容的指针。环境变量的格式为 name=value。

  • 返回值:执行成功则返回指向该内容的指针,找不到符合的环境变量名称则返回 NULL。

  • 相关函数:putenv, setenv, unsetenv

示例

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

int main()
{
    char *p;
    if((p = getenv("USER")))
        printf("USER=%s\n", p);
    return 0;
}

执行

USER=root

putenv

改变或增加环境变量

头文件

#include <stdlib.h>

函数原型

int putenv(const char * string);
  • 说明:putenv() 用来改变或增加环境变量的内容。参数 string 的格式为 name=value,如果该换变量原先存在,则变量内容会依参数 string 改变,否则此参数内容会成为新的环境变量。

  • 返回值:执行成功则返回 0,有错误发生则返回错误代码,例如 ENOMEM 表示内存不足,无法配置新的环境变量空间。

  • 相关函数:getenv, setenv, unsetenv

示例

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

int main()
{
    char *p;
    if((p = getenv("USER")))
        printf("USER=%s\n", p);
    putenv("USER=test");
    printf("USER=%s\n", getenv("USER"));
    return 0;
}

执行

USER=root
USER=test

setenv

改变或增加环境变量

头文件

#include <stdlib.h>

函数原型

int setenv(const char *name, const char *value, int overwrite);
  • 说明:setenv() 用来改变或增加环境变量的内容。参数 name 为环境变量名称字符串。value 则为变量内容,参数 overwrite 用来决定是否要改变已存在的环境变量。如果 overwrite 不为 0,而该环境变量原已有内容,则原内容会被改为参数 value 所指的变量内容。如果 overwrite 为 0,且该环境变量已有内容,则参数 value 会被忽略。

  • 返回值:执行成功则返回 0,有错误发生则返回错误代码,例如 ENOMEM 表示内存不足,无法配置新的环境变量空间。

  • 相关函数:getenv, putenv, unsetenv

示例

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

int main()
{
    char * p;
    if((p = getenv("USER")))
        printf("USER=%s\n", p);
    setenv("USER", "test", 1);
    printf("USER=%s\n", getenv("USER"));
    unsetenv("USER");
    printf("USER=%s\n", getenv("USER"));
    return 0;
}

执行

USER=root
USER=test
USER=(null)