Defect Report concerning: IEEE Std. 1003.1-1996, ISO/IEC 9945-1:1996 - C API
Clause: 6.4.1.2, 6.4.2.2, B.6.4
PASC Interpretation Ref: pasc-1003.1-07
Topic: ignoring errors


This is an unapproved interpretation of PASC 1003.1-1996, ISO/IEC 9945-1:1996 - C API.

Use of the information contained in this unapproved document is at your own risk.

Last update: 10 April,2001


                                                                1003.1-90 #7

        Classification: No change required


This response will be incorporated in an IEEE interpretations
publication, and will be also made available on-line on the IEEE 
SPAsystem.

 _____________________________________________________________________________


	Interpretation Number:	XXXX
	Topic:			ignoring errors
	Relevant Sections:	6.4.1.2, 6.4.2.2, B.6.4


Interpretation Request: (Defect Report)
-----------------------

    In 6.4.1.2 Description [Read from a File], page 116, line 116:

	"If nbyte is zero, the read() function shall return zero and
	have no other results."
 
    In 6.4.2.2 Description [Write to a File], page 118, lines 190-191:
 
	"If nbyte is zero and the file is a regular file, the write()
	function shall return zero and have no other results."
 
    In B.6.4 Input and Output, page 266, lines 3433-3438:
 
	"POSIX.1 requires that no action be taken when nbyte is zero.
	This is not intended to take precedence over the detection of
	errors (such as invalid buffer pointers or file descriptors).
	This is consistent with the rest of POSIX.1, but the phrasing
	here could be misread to require the detection of the zero case
	before any other errors.  A value of zero is considered a
	correct value, for which the semantics are a no-op."
 
    Rather than being a misreading, the interpretation of 6.4.1.2 and
    6.4.2.2 that other errors shall be ignored seems to be the only
    possible interpretation permitted by the normative text.  Is the
    rationale in error?

IEEE Interpretation for 1003.1-1990 (9945-1:1990):
--------------------------------------------------

The text in 6.4.1.2 and 6.4.2.2 describes the behaviour only in the
absence of error conditions.  The rationale is therefore correct.

Rationale for Interpretation:
-----------------------------

By convention, the Description describes behaviour only in the
absence of error conditions, unless explicitly stated.  It is
expected that a future issue of the standard will clarify this.

The original intention in this case was to leave error checking 
optional.

 _____________________________________________________________________________