In sigaction(2)
man page:
The siginfo_t argument to a SA_SIGINFO handler
When the SA_SIGINFO flag is specified in act.sa_flags, the signal
handler address is passed via the act.sa_sigaction field. This han‐
dler takes three arguments, as follows:
void
handler(int sig, siginfo_t *info, void *ucontext)
{
...
}
Why is ucontext a void *
when the man page states that it is a ucontext_t *
?
ucontext
This is a pointer to a ucontext_t structure, cast to void *.
The structure pointed to by this field contains signal context
information that was saved on the user-space stack by the ker‐
nel; for details, see sigreturn(2). Further information about
the ucontext_t structure can be found in getcontext(3). Com‐
monly, the handler function doesn't make any use of the third
argument.