Subject: Re: write() returning -1 and EINTR?
To: <>
From: David Laight <david@l8s.co.uk>
List: netbsd-users
Date: 12/17/2002 10:35:09
> My "POSIX Programmer's Guide" reads:
>
> Synopsis:
>
> #include <unistd.h>
> int write(int fildes, const void *buf, unsigned int nbyte)
> ...
>
> If a 'write' is interrupted by a signal, it will either return
> -1 with 'errno' set to 'EINTR" or it will return a the non-zero
> number of bytes written. A 'write' to a pipe will never return
> 'EINTR' if it has transferred any data and 'nybyte' is less than
> 'PIPE_BUF".
You need to get a newer book :-)
from http://www.opengroup.org/onlinepubs/007904975/functions/write.html
If write() is interrupted by a signal before it writes any data,
it shall return -1 with errno set to [EINTR].
If write() is interrupted by a signal after it successfully
writes some data, it shall return the number of bytes written.
David
--
David Laight: david@l8s.co.uk