Subject: bin/19402: write(2) man page doesn't document EINTR
To: None <gnats-bugs@gnats.netbsd.org>
From: None <kpneal@pobox.com>
List: netbsd-bugs
Date: 12/15/2002 22:08:45
>Number:         19402
>Category:       bin
>Synopsis:       write(2) doesn't document EINTR
>Confidential:   no
>Severity:       serious
>Priority:       low
>Responsible:    bin-bug-people
>State:          open
>Class:          doc-bug
>Submitter-Id:   net
>Arrival-Date:   Sun Dec 15 19:14:00 PST 2002
>Closed-Date:
>Last-Modified:
>Originator:     Kevin P. Neal
>Release:        NetBSD 1.6
>Organization:
-- 
Kevin P. Neal                                http://www.pobox.com/~kpn/

"You know, I think I can hear the machine screaming from here...  \
'help me! hellpp meeee!'"  - Heather Flanagan, 14:52:23 Wed Jun 10 1998
>Environment:
System: NetBSD rune.neutralgood.org 1.6 NetBSD 1.6 (RUNE-$Revision: 1.1 $) #7: Sun Sep 22 20:32:24 EDT 2002 kpn@neutralgood.org:/local/kernel/compile/RUNE alpha
Architecture: alpha
Machine: alpha
>Description:

The write system call man page does not document that receipt of a signal
before any data has been transmitted is an *error*, but receipt of
a signal after at least a single byte has been transmitted is NOT an
error. This confused me, and it confused the author of dump (for which
a patch is forthcoming).

>How-To-Repeat:

man 2 write, as suggested on the netbsd-users list. See that there is
nothing in the man page describing the condition described. Be irritated
at the suggestion. 

>Fix:

*** write.2.orig	Thu Feb  7 20:28:23 2002
--- write.2	Sun Dec 15 22:01:56 2002
***************
*** 177,182 ****
--- 177,184 ----
  containing the file has been exhausted.
  .It Bq Er EIO
  An I/O error occurred while reading from or writing to the file system.
+ .It Bq Er EINTR
+ A signal was received before any data could be written.
  .It Bq Er EAGAIN
  The file was marked for non-blocking I/O,
  and no data could be written immediately.
>Release-Note:
>Audit-Trail:
>Unformatted: