signal(2)
_________________________________________________________________
signal System Call
Specify what to do upon presentation of a signal.
_________________________________________________________________
SYNTAX
#include <signal.h>
void (* signal (signal_number, action))()
int signal_number;
void (*action)();
PARAMETERS
signal_number Type of signal.
action Handler for the signal.
DESCRIPTION
Signal allows the calling process to choose one of three ways to
handle the presentation of a specific signal. <Signal_number>
specifies the signal and <action> specifies the choice.
<Signal_number> may be any of the valid signals except SIGKILL.
See signal.h for a complete list.
<Action> is assigned one of three values: SIG_DFL, SIG_IGN, or a
function address. The actions prescribed by these values are as
follows.
SIGDFL - Process termination.
The process's signal action vector entry for <signal_number> is
set to `default'. If the signal <signal_number> was pended and
<signal_number> is not SIGKILL, the pended signal is lost. The
set of blocked signals remains unchanged.
When the signal <signal_number> is presented to the process, it
will cause the process to either terminate, stop, ignore the
signal, or terminate with a core dump depending on the signal's
type (see signal.h).
If a core dump is indicated, the receiving process must have
adequate permission to do so.
DG/UX 4.00 Page 1
Licensed material--property of copyright holder(s)
signal(2)
SIGIGN - Ignore signal.
The process's signal action vector entry for <signal_number> is
set to `ignore'. The set of blocked signals remains unchanged.
When the signal <signal_number> is presented to the process, it
will be discarded.
SIGKILL cannot be ignored.
Function_address - Catch signal.
The process's signal action vector entry for <signal_number> is
set to `catch'. If the signal <signal_number> was pended and
<signal_number> is not SIGKILL, the pended signal is lost. The
set of blocked signals remains unchanged.
When the signal <signal_number> is sent to the process, it will
cause the signal handler specified by <action> to be invoked.
The following attributes are set for the signal action vector
entry for <signal_number>:
* The signal mask addend is cleared. Thus, no additional
signals will be blocked when the signal handler is invoked.
* The signal stack choice specifies the current execution
stack. Thus, no stack change is made.
* The new signal action is set to `default' unless the
signal's new signal action is always `unchanged'. For
signals whose new signal action is set to `default', the
occurrence of multiple signals may cause some signals to be
lost or may cause the process to terminate.
* The restart system call choice specifies that system calls
interrupted by signal <signal_number> should not be
restarted.
The value of the signal <action> is not verified or access
checked at the time of the call. If it is invalid, results are
undefined when the signal is caught.
SIGKILL cannot be caught.
After a fork, the child process inherits all software signal
structures, except that the pending signal vector is cleared.
Exec modifies the software signal structures in the following
manner: 1) The signal action for signals set to `catch' is
changed to `default'. 2) The signal stack context is discarded.
DG/UX 4.00 Page 2
Licensed material--property of copyright holder(s)
signal(2)
3) All other software signal structures are unchanged.
Setting the signal SIGCLD to SIG_IGN affects exit and wait in the
following manner: 1) The calling process's child processes will
be cleaned-up by the parent when the parent issues its next
system call (checks signals). 2) If the calling process later
performs a wait operation, wait will suspend the calling process
until all child processes have terminated and will return with
the error condition ECHILD.
Signal will fail and the signal handler will be unchanged if an
error occurs.
ACCESS CONTROL
No access is required to install a signal handler.
The receiving process is granted permission to produce a core
dump file provided
* the effective-user-id and the real-user-id of the receiving
process are equal, and
* the receiving process has adequate file system permission to
create or rewrite the core dump file.
DG/UX 4.00 Page 3
Licensed material--property of copyright holder(s)
signal(2)
RETURN VALUE
<old_action> Completed successfully. The previous signal
handler for <signal_number> is returned.
-1 An error occurred. Errno is set to indicate the
error.
EXCEPTIONS
Errno may be set to the following error code:
EINVAL <Signal_number> is an illegal signal number,
including SIGKILL.
SEE ALSO
The related system calls: kill, pause, ptrace, wait.
The related manual sections: setjmp(3C), kill(1) in the User's
Reference for the DG/UX System
DG/UX 4.00 Page 4
Licensed material--property of copyright holder(s)