BEZEICHNUNG¶
putenv - eine Umgebungsvariable ändern oder hinzufügen
ÜBERSICHT¶
#include <stdlib.h>
int putenv(char *zeichenkette);
Mit Glibc erforderliche Makros (siehe
feature_test_macros(7)):
putenv(): _SVID_SOURCE || _XOPEN_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 und einen anderen
Wert als null, wenn ein Fehler auftritt.
FEHLER¶
- ENOMEM
- nicht ausreichend Speicher vorhanden, um neue Umgebung zu
reservieren
SVr4, POSIX.1-2001, 4.3BSD.
ANMERKUNGEN¶
Die Funktion
putenv() muss nicht ablaufinvariant sein und die in Libc4,
Libc5 und Glibc 2.0 ist es auch nicht, wohl aber die in Version in Glibc 2.1.
Beschreibung für Libc4, Libc5 und Glibc: Falls das Argument
zeichenkette die Form
Name hat und nicht das Zeichen
»=« enthält, dann wird die Variable
Name aus der
Umgebung entfernt. Falls
putenv() eine neues Feld
umgebung
reservieren muss und das vorherige Feld auch durch
putenv() reserviert
wurde, wird es freigegeben. Auf keinen Fall wird der alte Speicher
freigegeben, der mit der Umgebungsvarialben selbst verbunden ist.
Die Versionen von Libc4, Libc5 und Glibc 2.1.2 sind 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 Fehler
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-2.1.1
unterscheidet sich jedoch davon: Es wird eine Kopie der Zeichenkette benutzt.
Einerseits verursacht dies ein Speicherleck, andererseits verstößt
es gegen SUSv2. Dies wurde in Glibc 2.1.2 behoben.
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.
SIEHE AUCH¶
clearenv(3),
getenv(3),
setenv(3),
unsetenv(3),
environ(7)
KOLOPHON¶
Diese Seite ist Teil der Veröffentlichung 3.42 des Projekts Linux-
man-pages. Eine Beschreibung des Projekts und Informationen, wie Fehler
gemeldet werden können, finden sich unter
http://www.kernel.org/doc/man-pages/.
ÜBERSETZUNG¶
Die deutsche Übersetzung dieser Handbuchseite wurde von Patrick Rother
<krd@gulu.net>, Martin Schulze <joey@infodrom.org> und Chris Leick
<c.leick@vollbio.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 <debian-l10n-german@lists.debian.org>.