View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0000311 | 1003.1(2008)/Issue 7 | Base Definitions and Headers | public | 2010-09-15 14:21 | 2013-04-16 13:06 |
Reporter | geoffclare | Assigned To | ajosey | ||
Priority | normal | Severity | Objection | Type | Omission |
Status | Closed | Resolution | Accepted | ||
Name | Geoff Clare | ||||
Organization | The Open Group | ||||
User Reference | |||||
Section | unistd.h | ||||
Page Number | 430 | ||||
Line Number | 14446 | ||||
Interp Status | --- | ||||
Final Accepted Text | |||||
Summary | 0000311: _POSIX2_VERSION and profiles with no shell and utilities | ||||
Description | Implementations of profiles of POSIX.1 need a way to indicate that the shell and utilities are not supported, but the description of _POSIX2_VERSION on the <unistd.h> page does not provide any means of doing so. This problem does not arise for old options that are mandated in the current revision, such as Asynchronous I/O, because even though POSIX.1 requires the _POSIX_ASYNCHRONOUS_IO constant to have the value 200809L, the introductory paragraph of the "Constants for Options and Option Groups" section of the <unistd.h> page explains what the values -1/undefined and 0 mean for all of the option constants. Unfortunately _POSIX2_VERSION is not in that section of the <unistd.h> page. Since no special values are described, it is reasonable to assume that leaving _POSIX2_VERSION undefined would indicate that the shell and utilities are not supported. However, there is still a problem with sysconf(). Although the convention of sysconf() returning -1 without setting errno is well known, the way the return value is described on the sysconf() page actually relies on the <unistd.h> description of the meaning of value -1, and therefore does not, by a strict reading, apply to _POSIX2_VERSION. | ||||
Desired Action | At line 14446 after: For implementations conforming to POSIX.1-2008, the value shall be 200809L. add (to the same paragraph): For profile implementations that define _POSIX_SUBPROFILE (see [xref to 2.1.5.1]) in <unistd.h>, _POSIX2_VERSION may be left undefined or be defined with the value -1 to indicate that the Shell and Utilities volume is not supported. In this case a call to sysconf(_SC_2_VERSION) shall return either 200809L or -1 indicating that the Shell and Utilities volume is or is not, respectively, supported at runtime. At line 14455 after: The following symbolic constants, if defined in <unistd.h>, shall have a value of -1, 0, or greater, unless otherwise specified below. add: For profile implementations that define _POSIX_SUBPROFILE (see [xref to 2.1.5.1]) in <unistd.h>, constants described below as always having a value greater than zero need not be defined and, if defined, may have a value of -1, 0, or greater. | ||||
Tags | tc1-2008 |
Date Modified | Username | Field | Change |
---|---|---|---|
2010-09-15 14:21 | geoffclare | New Issue | |
2010-09-15 14:22 | geoffclare | Status | New => Under Review |
2010-09-15 14:22 | geoffclare | Assigned To | => ajosey |
2010-09-15 14:22 | geoffclare | Name | => Geoff Clare |
2010-09-15 14:22 | geoffclare | Organization | => The Open Group |
2010-09-15 14:22 | geoffclare | Section | => unistd.h |
2010-09-15 14:22 | geoffclare | Page Number | => 430 |
2010-09-15 14:22 | geoffclare | Line Number | => 14446 |
2010-09-15 14:22 | geoffclare | Interp Status | => --- |
2010-10-07 15:51 | Don Cragun | Interp Status | --- => Pending |
2010-10-07 15:51 | Don Cragun | Status | Under Review => Resolved |
2010-10-07 15:51 | Don Cragun | Resolution | Open => Accepted |
2010-10-07 15:51 | Don Cragun | Tag Attached: tc1-2008 | |
2010-10-07 15:53 | Don Cragun | Interp Status | Pending => --- |
2013-04-16 13:06 | ajosey | Status | Resolved => Closed |