oracular (3) getenv.3.gz

Provided by: manpages-de-dev_4.23.1-1_all bug

BEZEICHNUNG

       getenv, secure_getenv - eine Umgebungsvariable abfragen

BIBLIOTHEK

       Standard-C-Bibliothek (libc, -lc)

ÜBERSICHT

       #include <stdlib.h>

       char *getenv(const char *name);
       char *secure_getenv(const char *name);

   Mit Glibc erforderliche Feature-Test-Makros (siehe feature_test_macros(7)):

       secure_getenv():
           _GNU_SOURCE

BESCHREIBUNG

       Die Funktion getenv() sucht in der Liste der Umgebungsvariablen die Umgebungsvariable name und gibt einen
       Zeiger auf die passende Zeichenkette Wert.

       Die GNU-spezifische Funktion secure_getenv() ist mit getenv() identisch, außer dass  sie  in  Fällen,  in
       denen  eine  »sichere  Ausführung« erforderlich ist, NULL zurückgibt. Sichere Ausführung ist nötig, falls
       eine der folgenden Bedingungen wahr war, als das vom  aufrufenden  Prozess  gestartete  Programm  geladen
       wurde:

       •  Die effektive Benutzerkennung des Prozesses passte nicht zur realen Benutzerkennung oder die effektive
          Gruppenkennung passte  nicht  zur  realen  Gruppenkennung.  (Üblicherweise  resultiert  dies  aus  der
          Ausführung eines Set-User-ID- oder Set-Group-ID-Programms).

       •  Das effektive Capability-Bit war für eine ausführbare Datei nicht gesetzt oder

       •  der Prozess hat eine nicht leere, zulässige Capability gesetzt.

       Sichere  Ausführung  kann ebenso erforderlich sein, falls dies durch irgendwelche Linux-Sicherheitsmodule
       ausgelöst wird.

       Die Funktion secure_getenv() ist zur Benutzung in Universalbibliotheken  gedacht,  um  Schwachstellen  zu
       vermeiden.  Diese  können  auftreten,  wenn  Set-User-ID-  oder  Set-Group-ID-Programme versehentlich der
       Umgebung vertrauen.

RÜCKGABEWERT

       Die Funktion getenv() gibt einen Zeiger auf den Wert in der Umgebung oder NULL  zurück,  falls  es  keine
       Übereinstimmung gibt.

ATTRIBUTE

       Siehe attributes(7) für eine Erläuterung der in diesem Abschnitt verwandten Ausdrücke.

       ┌────────────────────────────────────────────────────────────────┬───────────────────────┬───────────────┐
       │SchnittstelleAttributWert          │
       ├────────────────────────────────────────────────────────────────┼───────────────────────┼───────────────┤
       │getenv(), secure_getenv()                                       │ Multithread-Fähigkeit │ MT-Sicher env │
       └────────────────────────────────────────────────────────────────┴───────────────────────┴───────────────┘

STANDARDS

       getenv()
              C11, POSIX.1-2008.

       secure_getenv()
              GNU.

GESCHICHTE

       getenv()
              POSIX.1-2001, C89, C99, SVr4, 4.3BSD.

       secure_getenv()
              Glibc 2.17.

ANMERKUNGEN

       Die Zeichenketten in der Liste der Umgebungsvariablen haben das Format Name=Wert.

       Wie normalerweise implementiert, gibt getenv() einen Zeiger auf eine Zeichenkette innerhalb der Liste der
       Umgebungsvariablen zurück. Der Aufrufende muss sicherstellen, dass diese Zeichenkette sich nicht  ändert,
       da das die Umgebung des Prozesses ändern würde.

       Die  Implementierung  von  getenv()  muss  nicht wiedereintrittsfähig sein. Die Zeichenkette, auf die der
       Rückgabewert der Funktion zeigt, könnte statisch zugewiesen werden und von  einem  anschließenden  Aufruf
       von getenv(), putenv(3), setenv(3) oder unsetenv(3) geändert werden.

       Der  Modus  »sichere  Ausführung« von secure_getenv() wird durch den Schalter AT_SECURE gesteuert, der in
       dem vom Kernel an den Userspace übergebenen Hilfsvektor enthalten ist.

SIEHE AUCH

       clearenv(3), getauxval(3), putenv(3), setenv(3), unsetenv(3), capabilities(7), environ(7)

ÜBERSETZUNG

       Die deutsche Übersetzung dieser Handbuchseite wurde von Patrick Rother  <krd@gulu.net>  und  Chris  Leick
       <c.leick@vollbio.de> erstellt.

       Diese  Übersetzung  ist  Freie  Dokumentation;  lesen  Sie  die  GNU  General  Public  License  Version 3
       ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩ oder neuer bezüglich der Copyright-Bedingungen. Es wird KEINE
       HAFTUNG übernommen.

       Wenn  Sie  Fehler  in  der Übersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an die
       Mailingliste der Übersetzer ⟨debian-l10n-german@lists.debian.org⟩.