Suspends a calling thread and waits for queued signals to arrive. This function is supported on OpenVMS Integrity servers and Alpha only. Format #include <signal.h> int sigwaitinfo (const sigset_t set, siginfo_t *info);
1 – Arguments
set The set of signals to wait for. info Pointer to a siginfo structure that is receiving data describing the signal, including any application-defined data specified when the signal was posted.
2 – Description
The sigwaitinfo function behaves the same as the sigwait function if the info argument is NULL. If the info argument is non-NULL, the sigwaitinfo function behaves the same as sigwait, except that the selected signal number is stored in the si_signo member of the siginfo structure, and the cause of the signal is stored in the si_code member. If any value is queued to the selected signal, the first such queued value is dequeued and the value is stored in the si_value member of info. The system resource used to queue the signal is released and made available to queue other signals. If no value is queued, the content of the si_value member is undefined. If no further signals are queued for the selected signal, the pending indication for that signal is reset. See also sigtimedwait and sigwait. See the "Error and Signal Handling" chapter of the VSI C RTL Reference Manual for more information on signal handling.
3 – Return Values
x Upon successful completion, the signal number selected is returned. -1 Indicates that an error occurred; errno is set to one of the following values: o EINVAL - The set argument contains an invalid or unsupported signal number. o EINTR - The wait was interrupted by an unblocked, intercepted signal.