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 Funktionsystem()
, 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:
Beim Übersetzen muss Folgendes beachtet werden:
Zusätzlich zur Bibliothek
$.SYSLNK.CRTE
muss die Bibliothek$.SYSLIB.POSIX-HEADER
angegeben werden, damit die richtigen Include-Dateien gefunden werden (OptionSTD-INCLUDE-LIBRARY
).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)
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.