Your Browser is not longer supported

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

{{viewport.spaceProperty.prod}}

Umgebungsvariablen

&pagelevel(3)&pagelevel

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.