IEEE Std 1003.1-2001 Interpretation #33

Copyright © 2006 IEEE. All rights reserved.

Interpretation Number:	033
                  	Topic:			key_t arithemetic type
                    	Relevant Sections:	XBD <sys/types.h> key_t 

------------------------------------------------------------------------

7 Defect Report concerning (number and title of International Standard or DIS final text, if applicable):

The Base Definitions Volume of IEEE Std 1003.1-2001

------------------------------------------------------------------------

8 Qualifier (e.g. error, omission, clarification required):

error

------------------------------------------------------------------------

9 References in document (e.g. page, clause, figure, and/or table numbers):

Page: 372 Line: 13070 Section: sys/types.h

XBDbug2.txt Enhancement Request Number 11

------------------------------------------------------------------------

10 Nature of defect (complete, concise explanation of the perceived problem):

In XBD <sys/types.h> we find the following the statment that key_t need not be an arithmetic type:

13068 All of the types shall be defined as arithmetic types of an appropriate length, with the following 13069 exceptions: 13070 XSI key_t

But in the description of "Data Types" in XSH (Section 2.12), we find the following contradictory statement:

3363 key_t Arithmetic type used for XSI interprocess communication.

Since ftok() returns (key_t)-1 on error, if it is not an arithmetic type then the only other thing it could be is a pointer.

------------------------------------------------------------------------

11 Solution proposed by the submitter (optional):

Remove line 13070 "XSI key_t" from <sys/types.h>

------------------------------------------------------------------------

Interpretation response ------------------------ The standard is inconsistent on this issue, and no conformance distinction can be made between alternative implementations based on this. This is being referred to the sponsor.

Rationale: ------------- The standard developers agreed that key_t should be an arithmetic type.

Back to IEEE Standards Interpretations for IEEE Std 1003.1-2001