SIGINTERRUPT(3) Library Functions Manual SIGINTERRUPT(3)

siginterruptallow signals to interrupt functions

#include <signal.h>

int siginterrupt(int sig, int flag);

The siginterrupt() function is used to change the restart behaviour 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:

The sig argument is not a valid signal number.

None.

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

None.

sigaction(3) , <signal.h> .

February 1997 posix.fail