Your Browser is not longer supported

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

{{viewport.spaceProperty.prod}}

Contingency- und STXIT-Routinen

&pagelevel(4)&pagelevel

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