SIGINTERRUPT(3C) Standard C Library Functions SIGINTERRUPT(3C)

siginterrupt - allow signals to interrupt functions

#include <signal.h>
int siginterrupt(int sig, int flag);

The siginterrupt() function changes the restart behavior when a function is interrupted by the specified signal. The function siginterrupt(sig, flag) has an effect as if implemented as:


siginterrupt(int sig, int flag) {

int ret;
struct sigaction act;
(void) sigaction(sig, NULL, &act);
if (flag)
act.sa_flags &= SA_RESTART;
else
act.sa_flags |= SA_RESTART;
ret = sigaction(sig, &act, NULL);
return ret; }

Upon successful completion, siginterrupt() returns 0. Otherwise, −1 is returned and errno is set to indicate the error.

The siginterrupt() function will fail if:

EINVAL

The sig argument is not a valid signal number.

The siginterrupt() function supports programs written to historical system interfaces. A standard-conforming application, when being written or rewritten, should use sigaction(2) with the SA_RESTART flag instead of siginterrupt().

See attributes(7) for descriptions of the following attributes:

ATTRIBUTE TYPE ATTRIBUTE VALUE
Interface Stability Standard
MT-Level MT-Safe

sigaction(2), signal.h(3HEAD), attributes(7), standards(7)

September 1, 2003 OmniOS