Dieses Kapitel 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“.
Die ausführliche Beschreibung der in diesem Abschnitt erwähnten Bibliotheksfunktionen (signal, raise, alarm, cenaco, cdisco, cstxit, _cstxit, longjmp, setjmp) finden Sie im Kapitel "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) ausgeführt werden soll, die durch das STXIT-Ereignis asynchron unterbrochen wurde.
„Kritische“ C-Bibliotheksfunktionen im Zusammenhang mit asynchronen Unterbrechungen sind
Speicherverwaltungsroutinen:
malloc,calloc,realloc,freeDateizugriffsfunktionen zum Öffnen und Schließen von Dateien:
fopen/fopen64,freopen/freopen64, open/open64, creat/creat64, fclose, closeAlle Dateizugriffs-, Dateiverwaltungs- und Ein-/Ausgabe-Funktionen, die auf die gleiche Datei angewendet werden
Zufallsgeneratorfunktionen:
rand,srandZeitfunktionen:
localtime/localtime_r,gmtime/gmtime_rFunktionen zum An- und Abmelden von Contingency-Routinen:
cenaco,cdiscoatexitstrtoksetlocale
Zu der Gruppe der „kritischen“ Funktionen gehören außerdem die Ein-/Ausgabefunktionen aus der C++-Standardbibliothek.