sigset(2) DG/UX 5.4.2 sigset(2)
NAME
sigset - specify what to do upon presentation of a signal
SYNOPSIS
#include <signal.h>
void (* sigset (signalnumber, action))()
int signalnumber;
void (*action)();
where:
signalnumber Any of the valid signals except SIGKILL (see signal.h
for a complete list)
action Handler for the signal: SIG_DFL, SIG_IGN, SIG_HOLD, or
a function address
DESCRIPTION
Sigset lets the calling process choose one of four ways to handle the
presentation of a specific signal. signalnumber specifies the
signal and action specifies the choice. The action choices are as
follows:
SIG_DFL Process termination.
The process's signal action vector entry for signalnumber
is set to `default' and the blocked signal vector entry for
signalnumber is cleared.
When the signal signalnumber is sent to the process, it
will not be pended and 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.
SIG_IGN Ignore signal.
The process's signal action vector entry for signalnumber
is set to `ignore' and the blocked signal vector entry for
signalnumber is cleared.
When the signal signalnumber is sent to the process, it
will not be pended and will be discarded.
SIGKILL, SIGCONT and SIGSTOP cannot be ignored.
SIG_HOLD Hold signal.
The process's signal action vector entry for signalnumber
is not modified, but the block signal vector entry for
signalnumber is set. This option is equivalent to the
system call sighold.
Licensed material--property of copyright holder(s) 1
sigset(2) DG/UX 5.4.2 sigset(2)
address Catch signal.
The process's signal action vector entry for signalnumber
is set to `catch' and the blocked signal vector entry for
signalnumber is cleared. If the signal signalnumber was
pended, the signal is presented to the process.
When the signal signalnumber is sent to the process, it
will not be pended and will cause signal handler specified
by action to be invoked. Upon invocation of the signal
handler the first argument to the handler function will
always be the number of the caught signal. Other signal
state information may be passed to the handler via
arguments depending upon the current software development
environment. See siginfo(5) and sde-target(1) for details.
The following attributes are set for the signal action
vector entry for signalnumber:
⊕ The signal mask addend is set to the specified
signal. Thus, the specified signal will be added to
the set of blocked signals when the signal handler
is invoked.
⊕ The signal stack choice specifies the current
execution stack. Thus, no stack change is made.
⊕ System calls interrupted by signal signalnumber
will not be restarted.
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. 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 system when they terminate. 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
Licensed material--property of copyright holder(s) 2
sigset(2) DG/UX 5.4.2 sigset(2)
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.
RETURN VALUE
oldaction Completed successfully. The previous signal handler
for signalnumber is returned.
SIG_ERR An error occurred. errno is set to indicate the
error.
DIAGNOSTICS
Errno may be set to the following error code:
EINVAL Signalnumber is an illegal signal number, including
SIGKILL.
SEE ALSO
kill(2), pause(2), ptrace(2), wait(2), sde-target(1).
STANDARDS
When using m88kbcs as the Software Development Environment target,
the sigset function will be emulated using BCS system calls. Since
this is an emulation requiring several BCS system calls, a slight
performance degradation may be noticed in comparison to using sigset
in /lib/libc.a.
Licensed material--property of copyright holder(s) 3