Dieser Abschnitt gibt Hinweise, wie in C Contingency- bzw. STXIT-Routinen realisiert werden können.
Die für das Verständnis notwendige und ausführliche Beschreibung des Contingency-STXIT-Konzepts sowie der entsprechenden BS2000-Systemmakros finden Sie im Handbuch „Makroaufrufe an den Ablaufteil“ [10].
Die ausführliche Beschreibung der in diesem Abschnitt erwähnten Bibliotheksfunktionen (signal(), raise(), alarm(), cenaco(), cdisco(), cstxit(), longjmp(),
setjmp()
) finden Sie im Nachschlageteil dieses Handbuchs.
Achtung
Die Verwendung einiger C-Bibliotheksfunktionen innerhalb von STXIT
-Routinen kann zu undefiniertem Verhalten führen. Die Konsistenz der Bibliotheksfunktionen kann bei asynchronen Unterbrechungen nicht immer gewährleistet werden. Zu undefiniertem Verhalten kommt es, wenn innerhalb der STXIT
-Routine die gleiche bzw. eine zur gleichen Gruppe gehörende Bibliotheksfunktion (siehe Auflistung unten) ausgeführt werden soll, die durch das STXIT
-Ereignis asynchron unterbrochen wurde.
„Kritische“ C-Bibliotheksfunktionen im Zusammenhang mit asynchronen Unterbrechungen sind:
Dateizugriffsfunktionen zum Öffnen und Schließen von Dateien:
fopen()
,freopen()
,open()
,creat()
,fclose()
,close()
Alle Dateizugriffs-, Dateiverwaltungs- und Ein-/Ausgabe-Funktionen, die auf die gleiche Datei angewendet werden
Zufallsgeneratorfunktionen:
rand()
,srand()
Zeitfunktionen:
localtime()
,gmtime()
Funktionen zum An- und Abmelden von Contingency-Routinen:
cenaco()
,cdisco()
atexit()
strtok()
setlocale()
Ein-/Ausgabefunktionen aus der C++-Standardbibliothek