Defect Report concerning: IEEE Std. 1003.1-1996, ISO/IEC 9945-1:1996 - C API
Clause: 2.2.2.69, 2.3.5
PASC Interpretation Ref: pasc-1003.1-52
Topic: timestamps on read-only filesystems


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 #52

        Classification: No Change.

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:			timestamps on read-only filesystems
	Relevant Sections:	2.2.2.69, 2.3.5


Interpretation Request: (Defect Report)
-----------------------
    
    POSIX.1-1990 Section 2.2.2.69 defines "read only file system":

	A file system that has implementation defined characteristics
	restricting modifications.

    POSIX.1-1990 Section 2.3.5 "file times update" states:

	Updates are not done for files on read-only file systems.

    Is it permissible for an implementation to update the st_atime
    attribute held in-core but yet prevent the update of that attribute for
    the file on the read-only filesystem?

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

    No, such an implementation is not conforming.

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

    The statement that a read-only filesystem has implementation-defined
    restrictions on modification does not prevent the standard itself from
    specifying restrictions.  Subclause 2.3.5 states that st_atime shall
    not be updated for a file on a read-only file system.   Subclause
    2.2.2.69 says that there are implementation-defined restrictions
    restricting modification, but these are in addition to any restrictions
    imposed by the standard.

    Note that read() marks the file for update, even on a read-only
    filesystem, but the update is never done.  This distinction is not
    particularly relevant to an application, since there is no way to
    find out that a time is "marked" but not "updated."

Editorial note for future revision of standard (not part of the interpretation)
-------------------------------------------------------------------------------
It would improve readability if these two subclauses referenced
each other, but the fact that they don't doesn't change what is
required.


 _____________________________________________________________________________