Namespaces
Variants

std:: getenv

From cppreference.net
Utilities library
Definiert in Header <cstdlib>
char * getenv ( const char * env_var ) ;

Durchsucht die environment list (die von der Host-Umgebung, dem Betriebssystem, bereitgestellt wird) nach einer Zeichenkette, die mit der C-Zeichenkette übereinstimmt, auf die env_var zeigt, und gibt einen Zeiger auf die C-Zeichenkette zurück, die dem gefundenen Mitglied der Environment-Liste zugeordnet ist.

Diese Funktion muss nicht thread-sicher sein. Ein weiterer Aufruf von getenv sowie ein Aufruf der POSIX-Funktionen setenv() , unsetenv() und putenv() kann den von einem vorherigen Aufruf zurückgegebenen Zeiger ungültig machen oder die Zeichenkette eines vorherigen Aufrufs modifizieren.

(bis C++11)

Diese Funktion ist thread-sicher (der Aufruf aus mehreren Threads führt nicht zu einem Data Race), solange keine andere Funktion die Host-Umgebung modifiziert. Insbesondere würden die POSIX-Funktionen setenv() , unsetenv() und putenv() ein Data Race verursachen, wenn sie ohne Synchronisierung aufgerufen werden.

(seit C++11)

Das Ändern der Zeichenkette, die von getenv zurückgegeben wird, ruft undefiniertes Verhalten hervor.

Inhaltsverzeichnis

Parameter

env_var - nullterminierte Zeichenkette, die den Namen der zu suchenden Umgebungsvariable identifiziert

Rückgabewert

Zeichenkette, die den Wert der Umgebungsvariable identifiziert, oder Nullzeiger, falls eine solche Variable nicht gefunden wurde.

Hinweise

Auf POSIX-Systemen sind die Umgebungsvariablen auch über die globale Variable environ zugänglich, deklariert als extern char ** environ ; in <unistd.h> , sowie über das optionale dritte Argument, envp , der main-Funktion .

Beispiel

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

Mögliche Ausgabe:

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

Siehe auch

C-Dokumentation für getenv