Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

putenv - Umgebungsvariable ändern oder hinzufügen

&pagelevel(4)&pagelevel

Definition

#include <stdlib.h>

int putenv (const char *string);

Beschreibung

putenv() ändert den Wert einer vorhandenen Umgebungsvariablen oder definiert eine neue Umgebungsvariable. string muss auf eine Zeichenkette der Form "name=value" zeigen. name steht für den Namen einer Umgebungsvariablen, value für den ihr zugewiesenen Wert. Wenn name mit einer existierenden Umgebungsvariablen identisch ist, wird der zugehörige Wert value mit der neuen Angabe überschrieben. Wenn name eine neue Umgebungsvariable ist, wird die Umgebung um diese erweitert. In jedem Fall wird string Teil der Umgebung und ändert damit die Umgebung.

Der von string belegte Speicherplatz wird nicht mehr verwendet, wenn putenv() einer vorhandenen Umgebungsvariablen einen neuen Wert zuweist.

putenv() ist nicht threadsicher.

Returnwert

0

bei Erfolg.

 

!= 0

bei Fehler, z.B. wenn nicht genügend Speicherplatz vorhanden ist. errno wird gesetzt, um den Fehler anzuzeigen.

Fehler

putenv() schlägt fehl, wenn gilt:


ENOMEM

Es steht nicht genügend Speicherplatz zur Verfügung.

Hinweise

putenv() verändert die Umgebung, auf die environ zeigt, und kann in Verbindung mit getenv() verwendet werden.

putenv() kann malloc() verwenden, um die Umgebung zu vergrößern.

Eine mögliche Fehlerquelle ist der Aufruf von putenv() mit einer automatischen Variablen als Argument und einer anschließenden Rückkehr von der aufrufenden Funktion, während string noch immer Teil der Umgebung ist.

BS2000
Beim Start eines Programms aus der POSIX-Shell wird neben den Voreinstellungen für die Umgebung auch die SDF-P-Variablenstruktur SYSPOSIX als Umgebungsdefinition ausgewertet (siehe auch environ). putenv() verändert die SDF-P-Variablen jedoch nicht. Die POSIX-Umgebung entspricht dem, worauf environ zeigt. SYSPOSIX.name ist im BS2000, also außerhalb des POSIX-Subsystems, definiert. (Ende)

Siehe auch

environ, exec, getenv(), malloc(), setenv(), unsetenv(), stdlib.h, Abschnitt "Umgebungsvariablen“