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 |