函数
<cstdlib>

getenv

char* getenv (const char* name);
获取环境变量字符串
检索一个 C 字符串,其中包含以 name 作为参数指定的环境变量的值。如果所请求的变量不是环境列表的一部分,则该函数返回一个空指针。

返回的指针指向一个内部内存块,其内容或有效性可能会因后续对 getenv 的调用而改变(但不会被其他库函数改变)。

程序不应修改此函数返回的指针所指向的字符串。某些系统和库实现可能允许使用特定函数(putenvsetenv...)来更改环境变量,但此类功能是不可移植的。

参数

名称
包含所请求变量名称的 C 字符串。
根据平台的不同,这可能是大小写敏感的,也可能不是。

返回值

一个包含所请求环境变量值的 C 字符串,如果该环境变量不存在,则为一个空指针

示例

1
2
3
4
5
6
7
8
9
10
11
12
/* getenv example: getting path */
#include <stdio.h>      /* printf */
#include <stdlib.h>     /* getenv */

int main ()
{
  char* pPath;
  pPath = getenv ("PATH");
  if (pPath!=NULL)
    printf ("The current path is: %s",pPath);
  return 0;
}

如果主机环境中存在 PATH 环境变量,上面的示例将打印该变量。

数据竞争

只要环境保持不变,并发调用此函数是安全的。

异常 (C++)

无异常保证:此函数从不抛出异常。

另见