NAME

     siginterrupt - allow signals to interrupt system calls


SYNOPSIS

     #include <signal.h>

     int siginterrupt(int sig, int flag));


DESCRIPTION

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

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

     If the flags 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

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


ERRORS

     EINVAL
          The specified signal number is invalid.


CONFORMING TO

     BSD 4.3


SEE ALSO

     signal(2)