Subject: Re: write() returning -1 and EINTR?
To: None <email@example.com>
From: David S. <firstname.lastname@example.org>
Date: 12/16/2002 23:41:17
> > Almost never!
> > Probably only for writes of less than PIPE_MAX bytes to pipes.
> > Maybe it depends on what you mean by 'atomic'.
> As in, if I write() a meg of data to disk and I get a signal in the
> middle, does the write() complete before the signal is delivered?
> A friend of mine swears the write() completes first.
My "POSIX Programmer's Guide" reads:
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