Namespaces
Variants

std::getenv

Aus de.cppreference.net
 
 
Dienstprogrammbibliothek
Sprachunterstützung
Typunterstützung (Basistypen, RTTI)
Bibliotheks-Feature-Test-Makros (C++20)
Programm-Dienstprogramme
Variadische Funktionen
Koroutinen-Unterstützung (C++20)
Vertragsunterstützung (C++26)
Drei-Wege-Vergleich
(C++20)
(C++20)(C++20)(C++20)    
(C++20)(C++20)(C++20)

Allgemeine Dienstprogramme
Relationale Operatoren (veraltet in C++20)
Ganzzahl-Vergleichsfunktionen
(C++20)(C++20)(C++20)    
(C++20)
Swap und Typ-Operationen
(C++14)
(C++11)
(C++11)
(C++11)
(C++17)
Allgemeine Vokabular-Typen
(C++11)
(C++17)
(C++17)
(C++17)
(C++11)
(C++17)
(C++23)



 
 
Definiert in Header <cstdlib>
char* getenv( const char* env_var );

Durchsucht die Umgebungsliste, 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 übereinstimmenden Element der Umgebungsliste zugeordnet ist.

Diese Funktion muss nicht threadsicher sein. Ein weiterer Aufruf von getenv sowie ein Aufruf der POSIX-Funktionen setenv(), unsetenv() und putenv() können den von einem vorherigen Aufruf zurückgegebenen Zeiger ungültig machen oder die von einem vorherigen Aufruf erhaltene Zeichenkette verändern.

(bis C++11)

Diese Funktion ist threadsicher (ein Aufruf aus mehreren Threads führt keinen Datenwettlauf herbei), solange keine andere Funktion die Host-Umgebung verändert. Insbesondere würden die POSIX-Funktionen setenv(), unsetenv() und putenv() einen Datenwettlauf verursachen, wenn sie ohne Synchronisation aufgerufen würden.

(seit C++11)

Das Ändern der von getenv zurückgegebenen Zeichenkette führt zu undefiniertem Verhalten.

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