WG15 Defect Report Ref: 9945-1-14
Topic: format of directory entries, use of read/write

This is an approved interpretation of 9945-1:1990.


Last update: 1997-05-20

                                                                9945-1-90 #14

	Topic:			format of directory entries, use of read/write
	Relevant Sections:	5.1.1
	Classification: No change required.

Defect Report:

Request (Paul Rabin #10)

    In 5.1.1 Format of Directory Entries, page 83, line 10:

	"The internal format of directories is unspecified."
    In Errors [Open a File], page 90, lines 256-257:
	"[EISDIR]	The named file is a directory, and the oflag
			argument specifies write or read/write access."
    Traditional implementations permitted the use of the read()
    function on directory files, so no error condition is defined in
    POSIX.1 for this case.  May a conforming application open a 
    directory file and read it using the open() and read() functions?
WG15 response for ISO/IEC 9945-1:1990 (IEEE Std 1003.1-1990)

Yes, a conforming application can invoke read() on a directory,
however, the result of any such read() is unspecified, and may be
an error return, including [EISDIR].

Rationale for Interpretation:

Nothing in the standard prevents an application from using the
open() and read() functions on a directory, but an
application which uses knowledge of a particular implementation's
format for directories is using a non-portable extension.

Implementations are free to return anything they want from a
read() to a directory.  For example, read() could always return
zero, or -1 with some appropriate errno.