Date: Thu, 18 Dec 2003 16:53:37 +1100 (EST) From: Bruce Evans <bde@zeta.org.au> To: Nate Lawson <nate@root.org> Cc: Daniel Eischen <eischen@vigrid.com> Subject: Re: cvs commit: src/lib/libc_r/uthread uthread_write.c Message-ID: <20031218164341.J19119@gamplex.bde.org> In-Reply-To: <20031217122003.B70894@root.org> References: <Pine.GSO.4.10.10312171448020.26635-100000@pcnet5.pcnet.com> <20031217122003.B70894@root.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, 17 Dec 2003, Nate Lawson wrote: > On Wed, 17 Dec 2003, Daniel Eischen wrote: > > On Wed, 17 Dec 2003, Nate Lawson wrote: > > > On Wed, 17 Dec 2003, Daniel Eischen wrote: > > > > Does this fix something other than bacula? > > > > > > Anyone else who expected this semantics. I have no specific examples. > > > > I think it probably only pertinent to writing to tape devices > > where a 0 return means end of tape. Otherwise you should Do mean "writing to tape devices with a broken device driver that returns 0 to mean end of tape". POSIX seems to be clear enough saying that write() returns -1 except on successful completion. I don't believe write() with a nonzero count is successful if it can write nothing. > > get -1 with an appropriate errno or just wait until all > > the requested data has been written. > > > > I asked if this fixed something because I was asked if this > > was a 5.2R candidate. > > Oh, I thought it mattered for people doing non-blocking writes from a > thread also. Non-blocking writes (if supported by whatever is behind the file descriptor) are required to return -1 and EAGAIN if they don't succeed. Historical implementations returned 0, but this was fixed in the first version of POSIX.1. Bruce
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20031218164341.J19119>