#include <signal.h> int raise(int signum);
raise
is called to artificially generate a signal. The
argument signum
is the number of the signal to be generated.
You should specify
this argument symbolically, using one of the
signal names listed in Types of Signal Support . When raise
is
called, the signal is handled as established by a previous call to
signal
or by the default handler if signal
was not
called.
If the raise
function is called for a signal managed by OpenEdition,
raise
calls the kill
function to generate the signal. Then, if
the signal is blocked when raise
is called, the signal
remains pending until the signal is unblocked. If a signal managed by SAS/C
is generated with raise
, the handler is always called immediately,
regardless of whether the signal is asynchronous or blocked. If you call
siginfo
in a handler for a signal generated by raise
, it always
returns NULL
.
raise
returns 0 if it is successful or a nonzero value if it is
not successful. The most common reason that raise
fails is
that the signum
number is not a valid signal.
Note:
raise
may not return if the handler for the signal terminates
with a call to longjmp
, exit
, or abort
, or if the
handler for the signal defaults to abnormal program termination.
raise
to test signal handling in a program, keep in
mind that signals generated by raise
are treated somewhat
differently from signals that occur naturally. Signals
other than OpenEdition signals that are
generated by raise
are always handled immediately, so
you should not use raise
to test signal blocking. You may also encounter problems
if you use raise
to test the handler for an asynchronous signal
because the handler for the signal is executed immediately, not just
when a function is called or returns.
siginfo
.
kill
, siggen
Copyright (c) 1998 SAS Institute Inc. Cary, NC, USA. All rights reserved.