table of contents
- bookworm 4.18.1-1
- bookworm-backports 4.24.0-2~bpo12+1
- testing 4.24.0-2
- unstable 4.24.0-2
putenv(3) | Library Functions Manual | putenv(3) |
BEZEICHNUNG¶
putenv - eine Umgebungsvariable ändern oder hinzufügen
BIBLIOTHEK¶
Standard-C-Bibliothek (libc, -lc)
ÜBERSICHT¶
#include <stdlib.h>
int putenv(char *zeichenkette);
putenv():
_XOPEN_SOURCE
|| /* Glibc >= 2.19: */ _DEFAULT_SOURCE
|| /* Glibc <= 2.19: */ _SVID_SOURCE
BESCHREIBUNG¶
Die Funktion putenv() fügt Umgebungsvariablen hinzu oder ändert ihren Wert. Das Argument zeichenkette hat die Form Name = Wert. Wenn Name in der Umgebung noch nicht existiert, dann wird zeichenkette zu der Umgebung hinzugefügt. Wenn Name existiert, dann wird der Wert von Name in der Umgebung auf Wert geändert. Die Zeichenkette, auf die zeichenkette zeigt, wird Teil der Umgebung, daher verändert das Abändern der Zeichenkette die Umgebung.
RÜCKGABEWERT¶
Die Funktion putenv() gibt bei Erfolg null zurück. Wenn ein Fehler auftritt, wird ein von null verschiedener Wert zurückgegeben und errno gesetzt, um den Fehler anzuzeigen.
FEHLER¶
- ENOMEM
- nicht ausreichend Speicher vorhanden, um neue Umgebung zu reservieren
ATTRIBUTE¶
Siehe attributes(7) für eine Erläuterung der in diesem Abschnitt verwandten Ausdrücke.
Schnittstelle | Attribut | Wert |
putenv() | Multithread-Fähigkeit | MT-Unsafe const:env |
STANDARDS¶
POSIX.1-2001, POSIX.1-2008, SVr4, 4.3BSD.
ANMERKUNGEN¶
Die Funktion putenv() muss nicht ablaufinvariant sein und diejenige Glibc 2.0 ist es auch nicht, wohl aber die in Version in Glibc 2.1.
Seit Version 2.1.2 ist die Glibc-Implementation konform zu SUSv2: Der an putenv() übergebene Zeiger zeichenkette wird benutzt. Insbesondere wird die Zeichenkette Teil der Umgebung; sie später zu ändern wird die Umgebung ändern. (Daher ist es ein Fehle,r putenv() mit einer automatischen Variable als Argument aufzurufen und dann von der aufrufenden Funktion zurückzukehren, während zeichenkette noch immer Teil der Umgebung ist.) Glibc 2.0 bis 2.1.1 unterscheidet sich jedoch davon: Es wird eine Kopie der Zeichenkette benutzt. Zum einen verursacht dies ein Speicherleck, außerdem verstößt es gegen SUSv2.
Die 4.4BSD-Version, wie Glibc 2.0, benutzt eine Kopie.
SUSv2 entfernt die Konstante aus dem Prototyp, daher tut dies auch Glibc 2.1.3.
Die GNU-C-Bibliotheksimplementierung stellt eine nicht standardisierte Erweiterung bereit. Falls Zeichenkette kein Gleichheitszeichen enthält:
putenv("NAME");
dann wird die benannte Variable aus der Umgebung des Aufrufenden entfernt.
SIEHE AUCH¶
ÜBERSETZUNG¶
Die deutsche Übersetzung dieser Handbuchseite wurde von Martin Schulze <joey@infodrom.org>, Patrick Rother <krd@gulu.net>, Chris Leick <c.leick@vollbio.de>, Mario Blättermann <mario.blaettermann@gmail.com> und Helge Kreutzmann <debian@helgefjell.de> erstellt.
Diese Übersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 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.
5. Februar 2023 | Linux man-pages 6.03 |