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