When a program is called in the POSIX subsystem, signal handling is performed by the C runtime system via the XPG4 Version 2-conformant facilities of the POSIX subsystem.
For programs called in BS2000, by contrast, signal handling is implemented by using the mechanisms in BS2000 (STXIT).
The cstxit()
function can be used to bypass POSIX signal handling and to register STXIT routines at the system; however, users are cautioned against using this option.
POSIX and STXIT signals cannot be otherwise handled in the same program.
Signal handling is based on the functions signal()
, sigaction()
, sigprocmask()
and kill()
. There are three possible settings for each signal (see sigaction()
).
When a process aborts, the number of the signal that triggered the abort, the address at which the program was aborted, and a prompt to request a core dump if desired are output.
All signals supported in the POSIX subsystem are defined in the header file signal.h
and are described in the corresponding section of this manual. These signals are generated when the specific event associated with them occurs.
There are some restrictions that apply to the user:
A registered
STXIT
routine will always be called before any registered signal handling by the system. If no signal was registered, then no registeredSTXIT
routine will be called.To ensure that the implicit
TU
contingency of the signal handling is not interrupted, no contingency routines above level 125 should be registered in any case.A dialog key is defined for the following signals:
Signals
Dialog key
SIGINT
[INTR]
SIGQUIT
[QUIT]
SIGSTOP
[STOP]
SIGTSTP
[SUSP]
SIGCONT
[START]
The [STOP] and [START] keys are not supported on block terminals (see also section“Block terminal support”).