Umgebungsvariablen beeinflussen das Verhalten von Funktionen. Beim Programmstart wird ein Vektor von Zeichenketten zur Verfügung gestellt, der Umgebung genannt wird. Auf diesen Vektor wird durch die folgende externe Variable gezeigt:
extern char **environ;
Entsprechend dem XPG4-Standard haben diese Zeichenketten die Form "name=value", z.B. "LAST_BYTE_POINTER=YES"
.
Umgebungsvariablen im BS2000
Im BS2000 können Sie Umgebungsvariablen folgendermaßen vorbesetzen:
Definieren Sie die S-Variable
SYSPOSIX
als Struktur:/DECLARE-VARIABLE VARIABLE-NAME=SYSPOSIX(TYPE=*STRUCTURE)
Belegen Sie die Umgebungsvariable name mit dem Wert value:
/SYSPOSIX.
name='
value'
Beachten Sie dabei:Im BS2000 dürfen Variablennamen nur Großbuchstaben und keine Unterstriche (_) enthalten. Um eine Umgebungsvariable mit Unterstrich im Namen zu definieren, müssen Sie den Unterstrich durch einen Bindestrich (-) ersetzen. Die Umgebungsvariable LAST_BYTE_POINTER belegen Sie beispielsweise mit:/SYSPOSIX.LAST-BYTE-POINTER='YES'
Beim Start eines Programms wird neben den Voreinstellungen für die Umgebung auch die S-Variable SYSPOSIX
als Umgebungsdefinition ausgewertet. Für jede Variable vom Typ String, die in der Struktur SYSPOSIX
enthalten ist, wird die Zeichenkette "name=value" in den globalen Datenbereich des Programms geschrieben, wobei name der Name der Umgebungsvariablen und value ihr Wert ist. Hierbei werden Bindestriche im Namen wiederum in Unterstriche umgewandelt, z.B. wird aus der S-Variablen SYSPOSIX.LAST-BYTE-POINTER die Umgebungsvariable LAST_BYTE_POINTER.
Nach dem Auslesen der S-Variable werden die Umgebungsvariablen ausschließlich im Programm verwaltet. Insbesondere haben dann Änderungen der S-Variablen keinen Einfluss mehr auf den Programmablauf. Während des Programmlaufs können Umgebungsvariablen nur mit der Funktion putenv
geändert und mit getenv
gelesen werden.