
#include <lcsignal.h> int siggen(int signum, void *info);
siggen artificially generates a signal and provides
information about the signal. The argument signum is the number
of the signal that is to be generated. You should specify this argument
symbolically using one of the signal names listed in
Supported Signals . When you call siggen, the signal is handled as
established by a previous call to signal or by the default handler if
signal is not called.
The argument info defines the value to be returned by the
siginfo function, if siginfo is called by the signal handler.
For some signals, such as SIGABRT, the info pointer is also meaningful
to the default handler for the signal. If default handling is
in effect for an OpenEdition signal generated by siggen,
siggen invokes the kill function to enable OpenEdition to
perform default handling.
A signal generated by siggen is always handled immediately, regardless
of whether the signal is asynchronous or whether it is blocked.
siggen returns 0 if it is successful or a nonzero value if it is not
successful. Note that siggen 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.
info is not NULL, it should be a value of the appropriate
pointer type.
See the description of the signal for the information returned by a call to
siginfo when a signal occurs naturally. For example, the expected type
for the SIGSEGV signal is SEGV_t. Declarations for these types (except
the types for SIGIUCV) are included in <lcsignal.h>.
If you use siggen to test signal handling in a program, keep in
mind that signals generated by siggen are treated somewhat differently
than signals that occur naturally. Signals generated by siggen are
always handled immediately, so
you should not use siggen to test signal
blocking. You may also encounter problems if you use siggen 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.
siggen.
#include <lcsignal.h> /* Abort execution with ABEND code 611. */ ABRT_t abrt_info; abtr_info.ABEND_str = ""; abrt_info.ABEND_info = NULL; abrt_info.ABEND_code = 611; . . . siggen(SIGABRT, &abrt_info);
abort, kill, raise
Copyright (c) 1998 SAS Institute Inc. Cary, NC, USA. All rights reserved.