home   contributing   bugs   download   online pages  

NAME | SYNOPSIS | DESCRIPTION | RETURN VALUE | ERRORS | CONFORMING TO | SEE ALSO | COLOPHONThe Linux Programming Interface


SIGINTERRUPT(3)               Linux Programmer's Manual               SIGINTERRUPT(3)

NAME         top

       siginterrupt - allow signals to interrupt system calls

SYNOPSIS         top

       #include <signal.h>

       int siginterrupt(int sig, int flag);

   Feature Test Macro Requirements for glibc (see feature_test_macros(7)):

       siginterrupt():
           _BSD_SOURCE || _XOPEN_SOURCE >= 500 ||
           _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED
           || /* Since glibc 2.12: */ _POSIX_C_SOURCE >= 200809L

DESCRIPTION         top

       The siginterrupt() function changes the restart behavior when a system call is
       interrupted by the signal sig.  If the flag argument is false (0), then system
       calls will be restarted if interrupted by the specified signal sig.  This is
       the default behavior in Linux.  However, when a new signal handler is
       specified with the signal(2) function, the system call is interrupted by
       default.

       If the flag argument is true (1) and no data has been transferred, then a
       system call interrupted by the signal sig will return -1 and errno will be set
       to EINTR.

       If the flag argument is true (1) and data transfer has started, then the
       system call will be interrupted and will return the actual amount of data
       transferred.

RETURN VALUE         top

       The siginterrupt() function returns 0 on success, or -1 if the signal number
       sig is invalid.

ERRORS         top

       EINVAL The specified signal number is invalid.

CONFORMING TO         top

       4.3BSD, POSIX.1-2001.  POSIX.1-2008 marks siginterrupt() as obsolete,
       recommending the use of sigaction(2) with the SA_RESTART flag instead.

SEE ALSO         top

       signal(2)

COLOPHON         top

       This page is part of release 3.32 of the Linux man-pages project.  A
       description of the project, and information about reporting bugs, can be found
       at http://www.kernel.org/doc/man-pages/.

                                      2010-09-26                      SIGINTERRUPT(3)

HTML rendering created 2010-12-03 by Michael Kerrisk, author of The Linux Programming Interface

customisable
counter