Namespaces
Variants

std:: getenv

From cppreference.net
Utilities library
Definido en el encabezado <cstdlib>
char * getenv ( const char * env_var ) ;

Busca en la lista de entorno proporcionada por el entorno anfitrión (el SO), una cadena que coincida con la cadena C apuntada por env_var y devuelve un puntero a la cadena C que está asociada con el miembro coincidente de la lista de entorno.

Esta función no está obligada a ser segura para hilos. Otra llamada a getenv , así como una llamada a las funciones POSIX setenv() , unsetenv() , y putenv() puede invalidar el puntero devuelto por una llamada anterior o modificar la cadena obtenida de una llamada anterior.

(until C++11)

Esta función es segura para hilos (llamarla desde múltiples hilos no introduce una condición de carrera) siempre que ninguna otra función modifique el entorno del sistema. En particular, las funciones POSIX setenv() , unsetenv() , y putenv() introducirían una condición de carrera si se llaman sin sincronización.

(since C++11)

Modificar la cadena devuelta por getenv provoca comportamiento indefinido.

Contenidos

Parámetros

env_var - cadena de caracteres terminada en nulo que identifica el nombre de la variable ambiental a buscar

Valor de retorno

Cadena de caracteres que identifica el valor de la variable de entorno o puntero nulo si dicha variable no se encuentra.

Notas

En sistemas POSIX, las variables de entorno también son accesibles mediante la variable global environ , declarada como extern char ** environ ; en <unistd.h> , y mediante el tercer argumento opcional, envp , de la función main .

Ejemplo

#include <cstdlib>
#include <iostream>
int main()
{
    if (const char* env_p = std::getenv("PATH"))
        std::cout << "Your PATH is: " << env_p << '\n';
}

Salida posible:

Your PATH is: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games

Véase también