Your Browser is not longer supported

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

{{viewport.spaceProperty.prod}}

Um POSIX-Funktionalität erweiterter Funktionsumfang

&pagelevel(4)&pagelevel

Wenn Sie ein Programm in der POSIX-Shell übersetzen, binden und starten (siehe auch Handbuch „C/C++ POSIX-Kommandos des C- und C++- bzw. C/C++-Compilers“), stehen alle Funktionen der C-Bibliothek zur Verfügung, wie sie im Folgenden aufgelistet sind. Dieser Funktionsumfang wird im Folgenden um POSIX-Funktionalität erweiterter Funktionsumfang genannt:

  • alle XPG4 Version 2-konformen Funktionen (in der Tabelle im Abschnitt "Umfang der unterstützten C-Bibliothek" in der Spalte „XPG4 Version 2“ mit x oder y gekennzeichnet)

  • alle XPG5-konformen Funktionen (in der Tabelle im Abschnitt "Umfang der unterstützten C-Bibliothek" in der Spalte „XPG5“ mit x oder y gekennzeichnet)

  • alle Funktionen, die in den Spalten "Andere Standards" oder "ANSI" in der Tabelle im Abschnitt "Umfang der unterstützten C-Bibliothek" mit x oder y gekennzeichnet sind

  • alle Funktionen, die als Erweiterung gekennzeichnet sind (in der Tabelle im Abschnitt "Umfang der unterstützten C-Bibliothek". in den Spalten „Erweiterung“ und „BS2000“ mit x gekennzeichnet)

  • bei den Funktionen, die mit xa gekennzeichnet sind, wird die XPG4 Version 2-konforme Funktionalität zur Verfügung gestellt. Dabei handelt es sich um folgende Funktionsgruppen:

    • die Zeitfunktionen clock(), ctime(), ctime_r(), ftime(), gmtime(), local-time(), mktime(), time()

    • die Funktionen zur Prozesssteuerung abort(), alarm(), _exit(), kill(), raise(), signal()

  • bei den Funktionen, die in der Tabelle mit xd gekennzeichnet sind, besteht die Möglichkeit, im Einzelfall auf BS2000- oder auf POSIX-Dateien zuzugreifen. Dies kann gesteuert werden, wie es im Abschnitt "Wahl des Dateisystems und der Systemumgebung“ beschrieben ist.
    Zu dieser Gruppe gehört auch die Funktion system(), da sie wie die Dateizugriffunktionen auf Quellprogrammebene gesteuert werden kann.

Intern wird ein Programm, das in der POSIX-Shell gestartet wurde, mit fork() und einer exec()-Funktion gestartet und hat damit einen Vaterprozess.

Sie erhalten den um die POSIX-Funktionalität erweiterten Funktionsumfang ebenfalls, wenn Sie das Programm in der BS2000-Kommandoebene übersetzen, binden und starten. Dabei müssen Sie jedoch Folgendes beachten:

  1. Beim Übersetzen muss Folgendes beachtet werden:

    1. Zusätzlich zur Bibliothek $.SYSLNK.CRTE muss die Bibliothek
      $.SYSLIB.POSIX-HEADER angegeben werden, damit die richtigen Include-Dateien gefunden werden (Option STD-INCLUDE-LIBRARY).

    2. Das Define _OSD_POSIX muss gesetzt werden. Dazu wählen Sie eine der folgenden Möglichkeiten:

      • Im Quellcode vor der ersten #include-Anweisung Folgendes angeben:

        #define _OSD_POSIX

      • Beim Übersetzungslauf die Option SOURCE-PROPERTIES setzen:

        SOURCE-PROPERTIES=PAR(DEFINE=_OSD_POSIX)

  2. Beim Binden muss der Bindeschalter $.SYSLNK.CRTE.POSIX vorrangig vor der Bibliothek $.SYSLNK.CRTE bzw. $.SYSLNK.CRTE.PARTIAL-BIND eingebunden werden.

Dieses Programm, das auf der BS2000-Kommandoebene übersetzt, gebunden und gestartet wurde, läuft in einer Task und hat damit keinen Vaterprozess.