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