Your Browser is not longer supported

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

{{viewport.spaceProperty.prod}}

Signale

&pagelevel(4)&pagelevel

Wenn ein Programm mit dem POSIX-Bindeschalter gebunden wurde, wickelt das C-Laufzeitsystem die Signalbehandlung über die XPG4 Version 2-konformen Möglichkeiten des POSIX-Subsystems ab.

Wenn ein Programm im BS2000 aufgerufen wird, wird die Signalbehandlung über die Mechanismen im BS2000 (STXIT) realisiert.

Mit der Funktion cstxit() können jedoch - an der POSIX-Signalbehandlung vorbei - STXIT-Routinen am System angemeldet werden. Trotzdem wird davor gewarnt, diese Möglichkeit zu nutzen.

Ansonsten dürfen POSIX- und STXIT-Signale nicht im selben Programm behandelt werden.

Die Signalbehandlung setzt auf den Funktionen signal(), sigaction(), sigprocmask() und kill() auf. Für jedes Signal sind drei Einstellungen möglich (siehe sigaction()).

Bei Abbruch des Prozesses wird die Nummer des auslösenden Signals, die Adresse, an der das Programm abgebrochen wird, und die Frage, ob ein Speicherabzug gewünscht wird, ausgegeben.

Alle im POSIX-Subsystem unterstützten Signale sind in der Include-Datei signal.h und im entsprechenden Abschnitt in diesem Handbuch beschrieben. Die Signale werden beim Eintreten des zugehörigen Ereignisses generiert.

Es gibt für den Anwender gewisse Einschränkungen:

  • Eine angemeldete STXIT-Routine wird immer vor einer angemeldeten Signalbehandlung vom System aufgerufen. Wenn kein Signal angemeldet wurde, wird auch keine angemeldete STXIT-Routine aufgerufen.

  • Auf keinen Fall sollen Contingency-Routinen oberhalb von Level 125 angemeldet werden, um damit die implizite TU-Contingency der Signalbehandlung nicht zu unterbrechen.

  • Für folgende Signale ist eine Dialogtaste definiert:

    Signal

    Dialogtaste

    SIGINT

    [INTR]

    SIGQUIT

    [QUIT]

    SIGSTOP

    [STOP]

    SIGTSTP

    [SUSP]

    SIGCONT

    [START]

    Die Tasten [STOP] und [START] werden auf Blockterminals nicht unterstützt (siehe auch Abschnitt "Blockterminalunterstützung“).