Defect Report concerning: IEEE Std. 1003.1-1996, ISO/IEC 9945-1:1996 - C API
Clause: 2.2.2.74, 3.1.1.2, B.2.3.7
PASC Interpretation Ref: pasc-1003.1-05
Topic: root directory


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

        Classification: Editorial defect

This will be forwarded to the IEEE for incorporation into a future 
errata sheet for the document, as well as an IEEE interpretations
publication, and will be also made available on-line on the IEEE 
SPAsystem.
 _____________________________________________________________________________

	Interpretation Number:	XXXX
	Topic:			root directory
	Relevant Sections:	2.2.2.74, 3.1.1.2, B.2.3.7


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

    In 2.2.2.74 root directory [General Terms], page 19, line 341:
 
        "root directory:  A directory, associated with a process ..."
 
    In 3.1.1.2 Description [Process Creation], page 42, lines 33-36:
 
        "All other process characteristics defined by this part of ISO/IEC
	9945 shall be the same in the parent and child processes.  The
	inheritance of process characteristics not defined in this part of
	ISO/IEC 994 is unspecified by this part of ISO/IEC 9945, but should
	be specified in the system documentation."
 
    In B.2.3.7 pathname resolution [General Concepts], page 211,
    lines 1131-1132:
 
	"The initialization of the root directory of a process is
	implementation defined.".
 
    According to the normative text, however, either the root directory
    is inherited on fork(), or it is unspecified.  It is certainly not
    implementation defined.  Since the definition of "root directory"
    identifies it as associated with a process, it seems as though
    inheritance is specified.  Is the rationale in error?  Does
    "initialization" refer to something other than "inheritance"?

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

The rationale is in error.

Rationale for Interpretation:
-----------------------------
The standard requires the root directory to be inherited in the
child process after a call to fork.  
An application cannot make any assumption about its root
directory on invocation (nor can a user upon login). In 
particular it is not safe to assume that all processes have the
same root.

 _____________________________________________________________________________