Namensräume
Varianten
Aktionen

std::getenv

Von cppreference.com
< cpp‎ | utility‎ | program
 
 
Dienstprogramm-Bibliotheken
Sprachunterstützung
Typunterstützung (Basistypen, RTTI)
Bibliotheks-Feature-Test-Makros (C++20)
Programm-Dienstprogramme
Variadische Funktionen
Coroutine-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 Hilfsmittel
Relationale Operatoren (in C++20 veraltet)
 
 
Definiert in Header <cstdlib>
char* getenv( const char* env_var );

Durchsucht die vom Host-System (dem Betriebssystem) bereitgestellte Umgebungsliste nach einem String, der mit dem von env_var zeigenden C-String übereinstimmt, und gibt einen Zeiger auf den C-String zurück, der mit dem übereinstimmenden Element der Umgebungsliste assoziiert ist.

Diese Funktion muss nicht threadsicher sein. Ein anderer Aufruf von getenv sowie ein Aufruf der POSIX-Funktionen setenv(), unsetenv() und putenv() können den von einem früheren Aufruf zurückgegebenen Zeiger ungültig machen oder den von einem früheren Aufruf erhaltenen String modifizieren.

(bis C++11)

Diese Funktion ist threadsicher (ihr Aufruf aus mehreren Threads führt zu keinem Datenrennen), solange keine andere Funktion die Host-Umgebung modifiziert. Insbesondere würden die POSIX-Funktionen setenv(), unsetenv() und putenv() ein Datenrennen verursachen, wenn sie ohne Synchronisation aufgerufen werden.

(seit C++11)

Das Modifizieren des von getenv zurückgegebenen Strings führt zu undefiniertem Verhalten.

Inhalt

[bearbeiten] Parameter

env_var - null-terminierter Zeichenkettenstring, der den Namen der zu suchenden Umgebungsvariable angibt

[bearbeiten] Rückgabewert

Zeichenkettenstring, der den Wert der Umgebungsvariable angibt, oder ein Nullzeiger, wenn die Variable nicht gefunden wird.

[bearbeiten] Hinweise

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

[bearbeiten] 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

[bearbeiten] Siehe auch

C-Dokumentation für getenv