Austin Group TC2 Summary Austin-206 Page 1 of 1 Submitted by Andrew Josey, The Open Group. February 13, 2003 Technical Corrigendum Number 2 for the Austin Group Specifications. The IEEE-SA Standards Board approved Technical Corrigendum Number 2 (TC2) on February 9th 2004. The governing board of The Open Group approved the document on 18 December 2003. The following sections below present an overview of what's been changed by this corrigendum. 1. Issues related to the Base Definitions * Section 2.1.5 Option Groups IEEE Std 1003.1-2001/Cor 2-2004, item XBD/TC2/D6/2 is applied, clarifying the wording under the Realtime Option Group when _POSIX_PRIORITIZED_IO is supported to take threads into account. * Section 3 Definition Definition: "Child Process" IEEE Std 1003.1-2001/Cor 2-2004, item XBD/TC2/D6/3 is applied, adding the vfork() function to those listed. Definition: "Group Database" IEEE Std 1003.1-2001/Cor 2-2004, item XBD/TC2/D6/4 is applied, removing the words "of implementation-defined format". Definition: "Process Lifetime" IEEE Std 1003.1-2001/Cor 2-2004, item XBD/TC2/D6/5 is applied, adding fork(), posix_spawn(), posix_spawnp() and vfork() to the list of functions. Definition: "Process Termination" IEEE Std 1003.1-2001/Cor 2-2004, item XBD/TC2/D6/6 is applied, rewording the definition to address the ''passive exit'' on termination of the last thread or the _Exit() function. Definition: "System Console" IEEE Std 1003.1-2001/Cor 2-2004, item XBD/TC2/D6/7 is applied, changing from "An implementation-defined device" to "A device". Definition: "System Process" IEEE Std 1003.1-2001/Cor 2-2004, item XBD/TC2/D6/8 is applied, rewording the definition to remove the requirement for an implementation to define the object. Definition: "System Databases" IEEE Std 1003.1-2001/Cor 2-2004, item XBD/TC2/D6/9 is applied, rewording the definition to reference the existing definitions for "group database" and "user database". Definition: "System Reboot" IEEE Std 1003.1-2001/Cor 2-2004, item XBD/TC2/D6/10 is applied, changing "An implementation-defined sequence of events" to "An unspecified sequence of events". Definition: "User Database" IEEE Std 1003.1-2001/Cor 2-2004, item XBD/TC2/D6/11 is applied, removing the words "of implementation-defined format". * Section 4.14 Seconds Since the Epoch IEEE Std 1003.1-2001/Cor 2-2004, item XBD/TC2/D6/12 is applied, making an editorial correction to the paragraph commencing "How any changes to the value of seconds...". * Section 6.3 C Language Wide-Character Codes IEEE Std 1003.1-2001/Cor 2-2004, item XBD/TC2/D6/13 is applied, adding a statement that the standard has no means of defining a wide character codeset. * Section 6.4 Character Set Description File IEEE Std 1003.1-2001/Cor 2-2004, item XBD/TC2/D6/14 is applied, correcting the example and adding a statement that the standard provides no means of defining a wide character codeset. IEEE Std 1003.1-2001/Cor 2-2004, item XBD/TC2/D6/15 is applied, allowing the value zero for the width value of WIDTH and WIDTH_DEFAULT. This is required to cover some existing locales. * Section 7.3.3 LC_MONETARY IEEE Std 1003.1-2001/Cor 2-2004, item XBD/TC2/D6/16 is applied, updating the descriptions of p_sep_by_space, n_sep_by_space, int_p_sep_by_space, and int_n_sep_by_space to match the description of these keywords in ISO C and the System Interfaces Volume, localeconv(). * Section 10.2 Output Devices and Terminal Types IEEE Std 1003.1-2001/Cor 2-2004, item XBD/TC2/D6/17 is applied, making it clear that the requirements for documenting terminal support are in the system documentation. * fcntl.h IEEE Std 1003.1-2001/Cor 2-2004, item XBD/TC2/D6/18 is applied, updating the prototypes for posix_fadvise() and posix_fallocate() to be large file aware, using off_t instead of size_t. * limits.h IEEE Std 1003.1-2001/Cor 2-2004, item XBD/TC2/D6/19 is applied, updating the values for INT_MAX, UINT_MAX and INT_MIN to be CX extensions over the ISO C standard, and correcting WORD_BIT from "16" to "32". IEEE Std 1003.1-2001/Cor 2-2004, item XBD/TC2/D6/20 is applied, removing CHARCLASS_NAME_MAX from the "Other Invariant Values" section (it also occurs under "Runtime Increasable Values"). * math.h IEEE Std 1003.1-2001/Cor 2-2004, item XBD/TC2/D6/21 is applied, making it clear that the meaning of the FP_FAST_FMA macro is unspecified if the macro is undefined. * netinet/in.h IEEE Std 1003.1-2001/Cor 2-2004, item XBD/TC2/D6/22 is applied, making it clear which structure members are in network byte order. * sched.h IEEE Std 1003.1-2001/Cor 2-2004, item XBD/TC2/D6/23 is applied, updating the DESCRIPTION section to differentiate between thread and process execution. * signal.h IEEE Std 1003.1-2001/Cor 2-2004, item XBD/TC2/D6/24 is applied, reworking the ordering of the siginfo_t type structure in the DESCRIPTION section. This is an editorial change and no normative change is intended. * sys/stat.h IEEE Std 1003.1-2001/Cor 2-2004, item XBD/TC2/D6/25 is applied, adding to the DESCRIPTON section that the timespec structure may be defined as described in . * sys/types.h IEEE Std 1003.1-2001/Cor 2-2004, item XBD/TC2/D6/26 is applied, adding pthread_t to the list of types that are not required to be arithmetic types, thus allowing the pthread_t to be defined as a structure. * sys/utsname.h IEEE Std 1003.1-2001/Cor 2-2004, item XBD/TC2/D6/27 is applied, changing the description of nodename within the utsname structure from "an implementation-defined communications network" to "the communications network to which this node is attached, if any". * ucontext.h IEEE Std 1003.1-2001/Cor 2-2004, item XBD/TC2/D6/28 is applied, updating the getcontext(), makecontext(), setcontext() and swapcontext() functions to be obsolescent. * unistd.h IEEE Std 1003.1-2001/Cor 2-2004, item XBD/TC2/D6/29 is applied, clarifying the requirements for when constants in can be defined or undefined. IEEE Std 1003.1-2001/Cor 2-2004, item XBD/TC2/D6/30 is applied, changing the "_V6_ILP32_OFF32", "_V6_ILP32_OFFBIG", "_V6_LP64_OFF64", and "_V6_LPBIG_OFFBIG" symbols to "_POSIX_V6_ILP32_OFF32", "_POSIX_V6_ILP32_OFFBIG", "_POSIX_V6_LP64_OFF64" and "_POSIX_V6_LPBIG_OFFBIG" respectively. This is for consistency with the sysconf() and c99 man pages. IEEE Std 1003.1-2001/Cor 2-2004, item XBD/TC2/D6/31 is applied, adding that the format of names of programming environments can be obtained using the getconf -v option. IEEE Std 1003.1-2001/Cor 2-2004, item XBD/TC2/D6/32 is applied, deleting the "_SC_FILE_LOCKING", "_SC_2_C_VERSION", and "_SC_XOPEN_XCU_VERSION" constants. IEEE Std 1003.1-2001/Cor 2-2004, item XBD/TC2/D6/33 is applied, adding _SC_SS_REPL_MAX, _SC_TRACE_EVENT_NAME_MAX, _SC_TRACE_NAME_MAX, _SC_TRACE_SYS_MAX and _SC_TRACE_USER_EVENT_MAX to the list of symbolic constants for sysconf(). IEEE Std 1003.1-2001/Cor 2-2004, item XBD/TC2/D6/34 is applied, updating the prototype for the symlink() function to match that in the System Interfaces volume. IEEE Std 1003.1-2001/Cor 2-2004, item XBD/TC2/D6/35 is applied, adding _PC_2_SYMLINKS to the symbolic constants list for pathconf(). This corresponds to the definition of POSIX2_SYMLINKS in the Shell and Utilities volume. 2. Issues related to the System Interfaces * Section 2.2.2 The Name Space IEEE Std 1003.1-2001/Cor 2-2004, item XSH/TC2/D6/2 is applied, making it clear that implementations are permitted to have symbols with the prefix _POSIX_ visible in any header. IEEE Std 1003.1-2001/Cor 2-2004, item XSH/TC2/D6/3 is applied, updating the table of allowed macro prefixes to include the prefix FP_[A-Z] for . This text is added for consistency with the page in the Base Definitions volume which permits additional implementation-defined floating-point classifications. * Section 2.4.3 Signal Actions IEEE Std 1003.1-2001/Cor 2-2004, item XSH/TC2/D6/4 is applied, adding the sockatmark() function to the list of functions that shall be either reentrant or non-interruptible by signals and shall be async-signal-safe. * Section 2.9.5 Thread Cancellation IEEE Std 1003.1-2001/Cor 2-2004, item XSH/TC2/D6/5 is applied, adding the fdatasync() function into the table of functions that shall have cancellation points (in section 2.9.5.2). IEEE Std 1003.1-2001/Cor 2-2004, item XSH/TC2/D6/6 is applied, adding numerous functions into the table of functions that may have cancellation points (in section 2.9.5.2). IEEE Std 1003.1-2001/Cor 2-2004, item XSH/TC2/D6/7 is applied, clarifying the requirements in section 2.9.5.3 Thread Cancellation Cleanup Handlers. * Section 2.9.8 Use of Application-Managed Thread Stacks IEEE Std 1003.1-2001/Cor 2-2004, item XSH/TC2/D6/8 is applied, adding section 2.9.8 Use of Application-Managed Thread Stacks. * abort IEEE Std 1003.1-2001/Cor 2-2004, item XSH/TC2/D6/9 is applied, changing "implementation-defined functions" to "implementation-supplied functions" in the APPLICATION USAGE. * aio_cancel IEEE Std 1003.1-2001/Cor 2-2004, item XSH/TC2/D6/10 is applied, removing the words "to the calling process" in the RETURN VALUE. The term was unnecessary and precluded threads. * aio_fsync IEEE Std 1003.1-2001/Cor 2-2004, item XSH/TC2/D6/11 is applied, removing the words "to the calling process" in the RETURN VALUE. The term was unnecessary and precluded threads. * aio_read IEEE Std 1003.1-2001/Cor 2-2004, item XSH/TC2/D6/12 is applied, rewording the DESCRIPTION section when prioritized I/O is supported to account for threads, and removing the words "to the calling process" in the RETURN VALUE. IEEE Std 1003.1-2001/Cor 2-2004, item XSH/TC2/D6/13 is applied, updating the [EINVAL] error, so that detection of an [EINVAL] error for an invalid value of aiocbp->aio_reqprio is only required if _POSIX_PRIORITIZED_IO is supported. * aio_write IEEE Std 1003.1-2001/Cor 2-2004, item XSH/TC2/D6/14 is applied, rewording the DESCRIPTION section when prioritized I/O is supported to account for threads, and removing the words "to the calling process" in the RETURN VALUE. IEEE Std 1003.1-2001/Cor 2-2004, item XSH/TC2/D6/15 is applied, updating the [EINVAL] error, so that detection of an [EINVAL] error for an invalid value of aiocbp->aio_reqprio is only required if _POSIX_PRIORITIZED_IO is supported. * abort IEEE Std 1003.1-2001/Cor 2-2004, item XSH/TC2/D6/16 is applied, replacing "an implementation-defined maximum value" with "an implementation-specific maximum value" in the RATIONALE. * asctime IEEE Std 1003.1-2001/Cor 2-2004, item XSH/TC2/D6/17 is applied, adding the CX extension in the RETURN VALUE requiring that if the asctime() function is unsuccessful it returns NULL. * atan2 IEEE Std 1003.1-2001/Cor 2-2004, item XSH/TC2/D6/18 is applied, adding the example to the EXAMPLES section. * atexit IEEE Std 1003.1-2001/Cor 2-2004, item XSH/TC2/D6/19 is applied, adding further clarifications to APPLICATION USAGE. * basename IEEE Std 1003.1-2001/Cor 2-2004, item XSH/TC2/D6/20 is applied, changing the DESCRIPTION section to make it clear that the string referenced is the string pointed to by path. * dlopen IEEE Std 1003.1-2001/Cor 2-2004, item XSH/TC2/D6/21 is applied, in the DESCRIPTION section changing the default behavior when neither RTLD_GLOBAL nor RTLD_LOCAL are specified from implementation-defined to unspecified. * erf IEEE Std 1003.1-2001/Cor 2-2004, item XSH/TC2/D6/22 is applied, adding the example to the EXAMPLES section. * errno IEEE Std 1003.1-2001/Cor 2-2004, item XSH/TC2/D6/23 is applied, adding text to the DESCRIPTION section stating that the setting of errno after a successful call to a function is unspecified unless the description of the function requires that it will not be modified. * exec IEEE Std 1003.1-2001/Cor 2-2004, item XSH/TC2/D6/24 is applied, applying changes to the DESCRIPTION, addressing which attributes are inherited by threads, and behavioral requirements for threads attributes . IEEE Std 1003.1-2001/Cor 2-2004, item XSH/TC2/D6/25 is applied, updating text in RATIONALE from "the process signal mask be unchanged across an exec" to "the new process image inherits the signal mask of the thread that called exec in the old process image". * exp IEEE Std 1003.1-2001/Cor 2-2004, item XSH/TC2/D6/26 is applied, adding the example to the EXAMPLES section. * fabs IEEE Std 1003.1-2001/Cor 2-2004, item XSH/TC2/D6/27 is applied, adding the example to the EXAMPLES section. * fclose IEEE Std 1003.1-2001/Cor 2-2004, item XSH/TC2/D6/28 is applied, updating the [EAGAIN] error in the ERRORS section from "the process would be delayed" to "the thread would be delayed". * fcntl IEEE Std 1003.1-2001/Cor 2-2004, item XSH/TC2/D6/29 is applied, adding the example to the EXAMPLES section. * fdopen IEEE Std 1003.1-2001/Cor 2-2004, item XSH/TC2/D6/30 is applied, making corrections to the RATIONALE section. * fflush IEEE Std 1003.1-2001/Cor 2-2004, item XSH/TC2/D6/31 is applied, updating the [EAGAIN] error in the ERRORS section from "the process would be delayed" to "the thread would be delayed". * fgetc IEEE Std 1003.1-2001/Cor 2-2004, item XSH/TC2/D6/32 is applied, updating the [EAGAIN] error in the ERRORS section from "the process would be delayed" to "the thread would be delayed". * fgetwc IEEE Std 1003.1-2001/Cor 2-2004, item XSH/TC2/D6/33 is applied, updating the [EAGAIN] error in the ERRORS section from "the process would be delayed" to "the thread would be delayed". * fpathconf IEEE Std 1003.1-2001/Cor 2-2004, item XSH/TC2/D6/34 is applied, adding the table entry for POSIX2_SYMLINKS in the DESCRIPTION section. IEEE Std 1003.1-2001/Cor 2-2004, item XSH/TC2/D6/35 is applied, updating the DESCRIPTION and RATIONALE sections to clarify behavior for the {POSIX_ALLOC_SIZE_MIN}, {POSIX_REC_INCR_XFER_SIZE}, {POSIX_REC_MAX_XFER_SIZE}, {POSIX_REC_MIN_XFER_SIZE}, and {POSIX_REC_XFER_ALIGN} variables. IEEE Std 1003.1-2001/Cor 2-2004, item XSH/TC2/D6/36 is applied, updating the RETURN VALUE and APPLICATION USAGE sections to state that the results are unspecified if a variable is dependent on an unsupported option, and advising application writers to check for supported options prior to obtaining and using such values. * fputc IEEE Std 1003.1-2001/Cor 2-2004, item XSH/TC2/D6/37 is applied, updating the [EAGAIN] error in the ERRORS section from "the process would be delayed" to "the thread would be delayed". * fputwc IEEE Std 1003.1-2001/Cor 2-2004, item XSH/TC2/D6/38 is applied, updating the [EAGAIN] error in the ERRORS section from "the process would be delayed" to "the thread would be delayed". * freeaddrinfo IEEE Std 1003.1-2001/Cor 2-2004, item XSH/TC2/D6/39 is applied, changing "corresponding value" to "corresponding error value" in the ERRORS section. * freopen IEEE Std 1003.1-2001/Cor 2-2004, item XSH/TC2/D6/40 is applied, adding the sentence "In this case, the file descriptor associated with the stream need not be closed if the call to freopen() succeeds." to the DESCRIPTION section. IEEE Std 1003.1-2001/Cor 2-2004, item XSH/TC2/D6/41 is applied, adding an [EBADF] "shall fail" error, and an [EBADF] "may fail" error to the ERRORS section. * fseek IEEE Std 1003.1-2001/Cor 2-2004, item XSH/TC2/D6/42 is applied, updating the [EAGAIN] error in the ERRORS section from "the process would be delayed" to "the thread would be delayed". * fsetpos IEEE Std 1003.1-2001/Cor 2-2004, item XSH/TC2/D6/43 is applied, updating the [EAGAIN] error in the ERRORS section from "the process would be delayed" to "the thread would be delayed". * fsync IEEE Std 1003.1-2001/Cor 2-2004, item XSH/TC2/D6/44 is applied, applying an editorial rewording of the DESCRIPTION section. No change in meaning is intended. * getcontext IEEE Std 1003.1-2001/Cor 2-2004, item XSH/TC2/D6/45 is applied, updating the SYNOPSIS and APPLICATION USAGE sections to note that the getcontext() and setcontext() functions are obsolescent. * getrlimit IEEE Std 1003.1-2001/Cor 2-2004, item XSH/TC2/D6/46 is applied, updating the definition of RLIMIT_STACK in the DESCRIPTION section from "the maximum size of a process stack" to the "maximum size of the initial thread's stack". Text is added to the RATIONALE section. * getsockopt IEEE Std 1003.1-2001/Cor 2-2004, item XSH/TC2/D6/47 is applied, updating the description of SO_LINGER, in the DESCRIPTION section, so that it blocks the calling thread rather than the process. * gmtime IEEE Std 1003.1-2001/Cor 2-2004, item XSH/TC2/D6/48 is applied, updating the error handling for gmtime_r(). * hypot IEEE Std 1003.1-2001/Cor 2-2004, item XSH/TC2/D6/49 is applied, updating the EXAMPLE. * isunordered IEEE Std 1003.1-2001/Cor 2-2004, item XSH/TC2/D6/50 is applied, correcting the RETURN VALUE section when x or y is NaN. * kill IEEE Std 1003.1-2001/Cor 2-2004, item XSH/TC2/D6/51 is applied, correcting the RATIONALE section. * killpg IEEE Std 1003.1-2001/Cor 2-2004, item XSH/TC2/D6/52 is applied, adding the example to the EXAMPLES section. * lio_listio IEEE Std 1003.1-2001/Cor 2-2004, item XSH/TC2/D6/53 is applied, adding new text for symettry with the aio_read() and aio_write() functions to the DESCRIPTION section. IEEE Std 1003.1-2001/Cor 2-2004, item XSH/TC2/D6/54 is applied, adding text to the DESCRIPTION section making it explicit that the user is required to keep the structure pointed to by sig->sigev_notify_attributes valid until the last asynchronous operation finished and the notification has been sent. * localtime IEEE Std 1003.1-2001/Cor 2-2004, item XSH/TC2/D6/55 is applied, updating the error handling for localtime_r(). IEEE Std 1003.1-2001/Cor 2-2004, item XSH/TC2/D6/56 is applied, adding a requirement that if localtime_r() does not set the tzname variable, it shall not set the daylight or timezone variables. On systems supporting XSI, the daylight, timezone, and tzname variables should all be set to provide information for the same timezone. This updates the description of localtime_r() to mention daylight and timezone as well as tzname. The SEE ALSO section is updated. * makecontext IEEE Std 1003.1-2001/Cor 2-2004, item XSH/TC2/D6/57 is applied, obsoleting the functions and giving advice on the alternatives. Changes are made to the SYNOPSIS, APPLICATION USAGE and RATIONALE sections. * mktime IEEE Std 1003.1-2001/Cor 2-2004, item XSH/TC2/D6/58 is applied, updating the RETURN VALUE and ERRORS section to add the optional [EOVERFLOW] error as a CX extension. IEEE Std 1003.1-2001/Cor 2-2004, item XSH/TC2/D6/59 is applied, making an editorial correction to the SEE ALSO section. * mmap IEEE Std 1003.1-2001/Cor 2-2004, item XSH/TC2/D6/60 is applied, updating the DESCRIPTION and ERRORS sections to add the [EINVAL] error when len is zero. * mq_getattr IEEE Std 1003.1-2001/Cor 2-2004, item XSH/TC2/D6/61 is applied, updating the ERRORS section to change the [EBADF] error from a "shall fail" to a "may fail". * mq_open IEEE Std 1003.1-2001/Cor 2-2004, item XSH/TC2/D6/62 is applied, updating the description of the permission bits in the DESCRIPTION section. The change is made for consistency with the shm_open() and sem_open() functions. * nanosleep IEEE Std 1003.1-2001/Cor 2-2004, item XSH/TC2/D6/63 is applied, correcting text in the RATIONALE section. * nftw IEEE Std 1003.1-2001/Cor 2-2004, item XSH/TC2/D6/64 is applied, changing the argument "depth" to "fd_limit" throughout and changing "to a maximum of 5 levels deep" to "using a maximum of 5 file descriptors" in the EXAMPLES section. * pipe IEEE Std 1003.1-2001/Cor 2-2004, item XSH/TC2/D6/65 is applied, adding the example to the EXAMPLES section. * poll IEEE Std 1003.1-2001/Cor 2-2004, item XSH/TC2/D6/66 is applied, applying an editorial correction to the spacing in the EXAMPLE. * popen IEEE Std 1003.1-2001/Cor 2-2004, item XSH/TC2/D6/67 is applied, adding the example to the EXAMPLES section. * posix_fadvise IEEE Std 1003.1-2001/Cor 2-2004, item XSH/TC2/D6/68 is applied, changing the function prototype in the SYNOPSIS section. The previous prototype was not large-file aware, and the standard developers felt it acceptable to make this change before implementations of the functions become widespread. * posix_fallocate IEEE Std 1003.1-2001/Cor 2-2004, item XSH/TC2/D6/69 is applied, changing the function prototype in the SYNOPSIS section. The previous prototype was not large-file aware, and the standard developers felt it acceptable to make this change before implementations of the functions become widespread. * pselect IEEE Std 1003.1-2001/Cor 2-2004, item XSH/TC2/D6/70 is applied, updating the DESCRIPTION to reference the signal mask in terms of the calling thread rather than process. * pthread_attr_destroy IEEE Std 1003.1-2001/Cor 2-2004, item XSH/TC2/D6/71 is applied, updating the ERRORS section to add the optional [EINVAL] error for the pthread_attr_destroy() function, and the optional [EBUSY] error for the pthread_attr_init() function. * pthread_attr_getdetachstate IEEE Std 1003.1-2001/Cor 2-2004, item XSH/TC2/D6/72 is applied, adding the example to the EXAMPLES section. IEEE Std 1003.1-2001/Cor 2-2004, item XSH/TC2/D6/73 is applied, updating the ERRORS section to add the optional [EINVAL] error for the pthread_attr_getdetachstate() function, and the optional [EINVAL] error for the pthread_attr_setdetachstate() function. * pthread_attr_getguardsize IEEE Std 1003.1-2001/Cor 2-2004, item XSH/TC2/D6/74 is applied, updating the ERRORS section to remove the [EINVAL] error "The attribute attr is invalid", and replacing it with the optional [EINVAL] error for the pthread_attr_getguardsize() and pthread_attr_setguardsize() functions. * pthread_attr_getinheritsched IEEE Std 1003.1-2001/Cor 2-2004, item XSH/TC2/D6/75 is applied, clarifying the values of inheritsched in the DESCRIPTION section and adding two optional errors to the ERRORS section for checking when attr refers to an uninitialized thread attribute object. * pthread_attr_getguardsize IEEE Std 1003.1-2001/Cor 2-2004, item XSH/TC2/D6/76 is applied, adding the example to the EXAMPLES section. * pthread_attr_getinheritsched IEEE Std 1003.1-2001/Cor 2-2004, item XSH/TC2/D6/77 is applied, adding the reference to Section 2.9.4 in the APPLICATION USAGE. * pthread_attr_getschedparam IEEE Std 1003.1-2001/Cor 2-2004, item XSH/TC2/D6/78 is applied, updating the ERRORS section to include optional errors for the case when attr refers to an uninitialized thread attribute object. * pthread_attr_getschedpolicy IEEE Std 1003.1-2001/Cor 2-2004, item XSH/TC2/D6/79 is applied, adding the reference to Section 2.9.4 in the APPLICATION USAGE. IEEE Std 1003.1-2001/Cor 2-2004, item XSH/TC2/D6/80 is applied, updating the ERRORS section to include optional errors for the case when attr refers to an uninitialized thread attribute object. * pthread_attr_getscope IEEE Std 1003.1-2001/Cor 2-2004, item XSH/TC2/D6/81 is applied, adding the reference to Section 2.9.4 in the APPLICATION USAGE. IEEE Std 1003.1-2001/Cor 2-2004, item XSH/TC2/D6/82 is applied, updating the ERRORS section to include optional errors for the case when attr refers to an uninitialized thread attribute object. * pthread_attr_getstack IEEE Std 1003.1-2001/Cor 2-2004, item XSH/TC2/D6/83 is applied, updating the APPLICATION USAGE section to refer to Section 2.9.8. IEEE Std 1003.1-2001/Cor 2-2004, item XSH/TC2/D6/84 is applied, updating the ERRORS section to include optional errors for the case when attr refers to an uninitialized thread attribute object. * pthread_attr_getstackaddr IEEE Std 1003.1-2001/Cor 2-2004, item XSH/TC2/D6/85 is applied, updating the APPLICATION USAGE section to refer to Section 2.9.8. IEEE Std 1003.1-2001/Cor 2-2004, item XSH/TC2/D6/86 is applied, updating the ERRORS section to include optional errors for the case when attr refers to an uninitialized thread attribute object. * pthread_attr_getstacksize IEEE Std 1003.1-2001/Cor 2-2004, item XSH/TC2/D6/87 is applied, updating the ERRORS section to include optional errors for the case when attr refers to an uninitialized thread attribute object. * pthread_cleanup_pop IEEE Std 1003.1-2001/Cor 2-2004, item XSH/TC2/D6/88 is applied, updating the DESCRIPTION section to describe the consequences of prematurely leaving a code block defined by the pthread_cleanup_push() and pthread_cleanup_pop() functions. * pthread_cond_timedwait IEEE Std 1003.1-2001/Cor 2-2004, item XSH/TC2/D6/89 is applied, updating the DESCRIPTION section for consistency with the pthread_cond_destroy() function that states it is safe to destroy an initialized condition variable upon which no threads are currently blocked. IEEE Std 1003.1-2001/Cor 2-2004, item XSH/TC2/D6/90 is applied, updating words in the DESCRIPTION section from "the cancelability enable state" to "the cancelability type". IEEE Std 1003.1-2001/Cor 2-2004, item XSH/TC2/D6/91 is applied, updating the ERRORS section, firstly to remove the error case related to abstime from the pthread_cond_wait() function, and secondly to make the error case related to abstime mandatory for pthread_cond_timedwait() for consistency with other functions. * pthread_cond_timedwait IEEE Std 1003.1-2001/Cor 2-2004, item XSH/TC2/D6/92 is applied, adding a new paragraph to the RATIONALE section stating that an application should check the predicate on any return from this function. * pthread_create IEEE Std 1003.1-2001/Cor 2-2004, item XSH/TC2/D6/93 is applied, updating the ERRORS section to remove the mandatory [EINVAL] error "The value specified by attr is invalid", and adding the optional [EINVAL] error, "The attributes specified by attr are invalid". IEEE Std 1003.1-2001/Cor 2-2004, item XSH/TC2/D6/94 is applied, adding the APPLICATION USAGE section. * pthread_detach IEEE Std 1003.1-2001/Cor 2-2004, item XSH/TC2/D6/95 is applied, updating the ERRORS section so that the [EINVAL] and [ESRCH] error cases become optional "may fail" cases. * pthread_getspecific IEEE Std 1003.1-2001/Cor 2-2004, item XSH/TC2/D6/96 is applied, updating the ERRORS section so that the [ENOMEM] error case is changed from "to associate the value with the key" to "to associate the non-NULL value with the key. * pthread_join IEEE Std 1003.1-2001/Cor 2-2004, item XSH/TC2/D6/97 is applied, updating the ERRORS section so that the [EINVAL] error is made optional and the words "the implementation has detected" removed from it. * pthread_mutex_lock IEEE Std 1003.1-2001/Cor 2-2004, item XSH/TC2/D6/98 is applied, updating the ERRORS section so that the [EDEADLK] error includes detection of a deadlock condition. The RATIONALE section is also reworded to take into account non XSI conformant systems. * pthread_mutex_timedlock IEEE Std 1003.1-2001/Cor 2-2004, item XSH/TC2/D6/99 is applied, marking the last paragraph in the DESCRIPTION section as part of the TPI option. IEEE Std 1003.1-2001/Cor 2-2004, item XSH/TC2/D6/100 is applied, updating the ERRORS section so that the [EDEADLK] error includes detection of a deadlock condition. * pthread_rwlock_rdlock IEEE Std 1003.1-2001/Cor 2-2004, item XSH/TC2/D6/101 is applied, updating the ERRORS section so that the [EDEADLK] error includes detection of a deadlock condition. * pthread_rwlock_timedrdlock IEEE Std 1003.1-2001/Cor 2-2004, item XSH/TC2/D6/102 is applied, updating the ERRORS section so that the [EDEADLK] error includes detection of a deadlock condition. * pthread_rwlock_timedwrlock IEEE Std 1003.1-2001/Cor 2-2004, item XSH/TC2/D6/103 is applied, updating the ERRORS section so that the [EDEADLK] error includes detection of a deadlock condition. * pthread_rwlock_trywrlock IEEE Std 1003.1-2001/Cor 2-2004, item XSH/TC2/D6/104 is applied, updating the ERRORS section so that the [EDEADLK] error includes detection of a deadlock condition. * pthread_sigmask IEEE Std 1003.1-2001/Cor 2-2004, item XSH/TC2/D6/105 is applied, updating "process signal mask" to "thread signal mask" in the DESCRIPTION and RATIONALE sections. IEEE Std 1003.1-2001/Cor 2-2004, item XSH/TC2/D6/106 is applied, adding the example to the EXAMPLES section. * pthread_spin_lock IEEE Std 1003.1-2001/Cor 2-2004, item XSH/TC2/D6/107 is applied, updating the ERRORS section so that the [EDEADLK] error includes detection of a deadlock condition. * read IEEE Std 1003.1-2001/Cor 2-2004, item XSH/TC2/D6/108 is applied, updating the [EAGAIN] error in the ERRORS section from "the process would be delayed" to "the thread would be delayed". IEEE Std 1003.1-2001/Cor 2-2004, item XSH/TC2/D6/109 is applied, making an editorial correction in the RATIONALE. * realpath IEEE Std 1003.1-2001/Cor 2-2004, item XSH/TC2/D6/110 is applied, updating the ERRORS section to refer to the file_name argument rather than a non-existent path argument. * select IEEE Std 1003.1-2001/Cor 2-2004, item XSH/TC2/D6/111 is applied, updating the SYNOPSIS section to match the pselect() man page. * sem_close IEEE Std 1003.1-2001/Cor 2-2004, item XSH/TC2/D6/113 is applied, updating the ERRORS section so that the [EINVAL] error becomes optional. * sem_destroy IEEE Std 1003.1-2001/Cor 2-2004, item XSH/TC2/D6/114 is applied, updating the ERRORS section so that the [EINVAL] error becomes optional. * sem_getvalue IEEE Std 1003.1-2001/Cor 2-2004, item XSH/TC2/D6/115 is applied, updating the ERRORS section so that the [EINVAL] error becomes optional. * sem_init IEEE Std 1003.1-2001/Cor 2-2004, item XSH/TC2/D6/116 is applied, updating the DESCRIPTION section to add the sem_timedwait() function for alignment with 1003.1d-1999. * sem_open IEEE Std 1003.1-2001/Cor 2-2004, item XSH/TC2/D6/117 is applied, updating the DESCRIPTION section to add the sem_timedwait() function for alignment with 1003.1d-1999. IEEE Std 1003.1-2001/Cor 2-2004, item XSH/TC2/D6/118 is applied, updating the DESCRIPTION section describing the conditions to return the same semaphore address on a call to sem_open(). The words "and at least one previous successful sem_open() call for this semaphore has not been matched with sem_close() call" are added. * sem_post IEEE Std 1003.1-2001/Cor 2-2004, item XSH/TC2/D6/119 is applied, updating the ERRORS section so that the [EINVAL] error becomes optional. * sem_timedwait IEEE Std 1003.1-2001/Cor 2-2004, item XSH/TC2/D6/120 is applied, updating the ERRORS section so that the [EINVAL] error becomes optional. * sem_trywait IEEE Std 1003.1-2001/Cor 2-2004, item XSH/TC2/D6/121 is applied, updating the ERRORS section so that the [EINVAL] error becomes optional. * semget IEEE Std 1003.1-2001/Cor 2-2004, item XSH/TC2/D6/122 is applied, updating the DESCRIPTION section from "each semaphore in the set shall not be initialized" to "each semaphore in the set need not be initialized". * seteuid IEEE Std 1003.1-2001/Cor 2-2004, item XSH/TC2/D6/123 is applied, making an editorial correction in the RATIONALE section. * setlocale IEEE Std 1003.1-2001/Cor 2-2004, item XSH/TC2/D6/124 is applied, updating the DESCRIPTION to clarrify the behavior of setlocale(LC_ALL,""). * setsockopt IEEE Std 1003.1-2001/Cor 2-2004, item XSH/TC2/D6/125 is applied, updating the SO_LINGER option with the DESCRIPTION section to refer to the calling thread rather than the process. * shm_open IEEE Std 1003.1-2001/Cor 2-2004, item XSH/TC2/D6/126 is applied, adding the example to the EXAMPLES section. * sigaction IEEE Std 1003.1-2001/Cor 2-2004, item XSH/TC2/D6/127 is applied, removing text from the DESCRIPTION section duplicated later in the same section. IEEE Std 1003.1-2001/Cor 2-2004, item XSH/TC2/D6/129 is applied, updating the DESCRIPTION and APPLICATION USAGE sections. Changes are made to refer to the thread rather than the process. IEEE Std 1003.1-2001/Cor 2-2004, item XSH/TC2/D6/129 is applied, adding the example to the EXAMPLES section. * sigtimedwait IEEE Std 1003.1-2001/Cor 2-2004, item XSH/TC2/D6/130 is applied, restoring wording in the RETURN VALUE section to that in the original base document, "An implementation should only check for this error if no signal is pending in set and it is necessary to wait". * sigwait IEEE Std 1003.1-2001/Cor 2-2004, item XSH/TC2/D6/131 is applied, updating the DESCRIPTION section to state that if more than a single thread is blocked in sigwait(), it is unspecified which of the waiting threads returns, and that if a signal is generated for a specific thread only that thread shall return. * sleep IEEE Std 1003.1-2001/Cor 2-2004, item XSH/TC2/D6/132 is applied, making a correction in the RATIONALE section. * strptime IEEE Std 1003.1-2001/Cor 2-2004, item XSH/TC2/D6/133 is applied, adding the example to the EXAMPLES section. * sysconf IEEE Std 1003.1-2001/Cor 2-2004, item XSH/TC2/D6/134 is applied, updating the DESCRIPTION section to remove an erroneous entry for _POSIX_SYMLOOP_MAX. This corrects an error in Technical Corrigendum 1. IEEE Std 1003.1-2001/Cor 2-2004, item XSH/TC2/D6/135 is applied, removing _POSIX_FILE_LOCKING, _POSIX_MULTI_PROCESS, _POSIX2_C_VERSION and _XOPEN_XCU_VERSION (and their associated _SC_* variables) from the DESCRIPTION and APPLICATION USAGE sections. IEEE Std 1003.1-2001/Cor 2-2004, item XSH/TC2/D6/136 is applied, adding, _POSIX_SS_REPL_MAX, _POSIX_TRACE_EVENT_NAME_MAX, _POSIX_TRACE_NAME_MAX, _POSIX_TRACE_SYS_MAX, and _POSIX_TRACE_USER_EVENT_MAX (and their associated _SC_* variables) to the DESCRIPTION. The RETURN VALUE and APPLICATION USAGE sections are updated to note that if variables are dependent on unsupported options that the results are unspecified. IEEE Std 1003.1-2001/Cor 2-2004, item XSH/TC2/D6/137 is applied, removing _REGEX_VERSION and _SC_REGEX_VERSION. * timer_create IEEE Std 1003.1-2001/Cor 2-2004, item XSH/TC2/D6/138 is applied, updating the DESCRIPTION and APPLICATION USAGE sections to describe the case when a timer is created with the notification method set to SIGEV_THREAD. * timer_delete IEEE Std 1003.1-2001/Cor 2-2004, item XSH/TC2/D6/139 is applied, updating the ERRORS section so that the [EINVAL] error becomes optional. IEEE Std 1003.1-2001/Cor 2-2004, item XSH/TC2/D6/140 is applied, updating the ERRORS section so that the mandatory [EINVAL] error, "The timerid argument does not correspond to an ID returned by timer_create() but not yet deleted by timer_delete()", becomes optional. * timer_getoverrun IEEE Std 1003.1-2001/Cor 2-2004, item XSH/TC2/D6/141 is applied, updating the ERRORS section to include an optional [EINVAL] error for the case when a timer is created with the notification method set to SIGEV_THREAD. APPLICATION USAGE text is also added. * tmpnam IEEE Std 1003.1-2001/Cor 2-2004, item XSH/TC2/D6/142 is applied, updating the DESCRIPTION section to allow implementations of the tempnam() function to call tmpnam(). * umask IEEE Std 1003.1-2001/Cor 2-2004, item XSH/TC2/D6/143 is applied, adding the mknod(), mq_open() and sem_open() functions to the DESCRIPTION and SEE ALSO sections. * usleep IEEE Std 1003.1-2001/Cor 2-2004, item XSH/TC2/D6/144 is applied, updating the DESCRIPTION section, so that the process signal mask to thread's signal mark,and adding a statement that the usleep() function need not be reentrant. * wait IEEE Std 1003.1-2001/Cor 2-2004, item XSH/TC2/D6/145 is applied, adding the example to the EXAMPLES section. * write IEEE Std 1003.1-2001/Cor 2-2004, item XSH/TC2/D6/146 is applied, updating text the ERRORS section from "a SIGPIPE signal shall also be sent to the calling process" to "a SIGPIPE signal shall also be sent to the thread". IEEE Std 1003.1-2001/Cor 2-2004, item XSH/TC2/D6/147 is applied, making a correction to the RATIONALE section. * y0 IEEE Std 1003.1-2001/Cor 2-2004, item XSH/TC2/D6/148 is applied, updating the RETURN VALUES and ERRORS sections. The changes are made for consistency with the general rules stated in "Treatment of Error Conditions for Mathematical Functions" in the Base Definitions volume of IEEE Std 1003.1-2001." 3. Issues related to the Shell and Utilities * Section 1.7 Relationship to Other Documents IEEE Std 1003.1-2001/Cor 2-2004, item XCU/TC2/D6/2 is applied, updating Table 1-1. * Section 2.6.4 Arithmetic Expansion IEEE Std 1003.1-2001/Cor 2-2004, item XSH/TC2/D6/3 is applied, clarifying arithmetic expressions. * Section 2.9.1 Simple Commands IEEE Std 1003.1-2001/Cor 2-2004, item XCU/TC2/D6/4 is applied, updating the case where execve() fails due to an error equivalent to the [ENOEXEC] error. * c99 IEEE Std 1003.1-2001/Cor 2-2004, item XCU/TC2/D6/5 is applied, updating the OPTIONS section, so that the names of files contained in the directory specified by the -L option are not assumed to end in the ".a" suffix. The set of library prefixes is also updated. IEEE Std 1003.1-2001/Cor 2-2004, item XCU/TC2/D6/6 is applied, removing the lead underscore from the POSIX_V6_WIDTH_RESTRICTED_ENVS variable in the EXTENDED DESCRIPTION and the EXAMPLES sections. * ed IEEE Std 1003.1-2001/Cor 2-2004, item XCU/TC2/D6/7 is applied, removing text describing behavior on systems with bytes consisting of more than eight bits. * ex IEEE Std 1003.1-2001/Cor 2-2004, item XCU/TC2/D6/8 is applied, making an editorial correction in the EXTENDED DESCRIPTION. IEEE Std 1003.1-2001/Cor 2-2004, item XCU/TC2/D6/9 is applied, removing text describing behavior on systems with bytes consisting of more than eight bits. * file IEEE Std 1003.1-2001/Cor 2-2004, item XCU/TC2/D6/10 is applied, clarifying the specification characters * file IEEE Std 1003.1-2001/Cor 2-2004, item XCU/TC2/D6/11 is applied, allowing application writers to create porable magic files that can match characters in strings, and allowing common extensions found in existing implementations. IEEE Std 1003.1-2001/Cor 2-2004, item XCU/TC2/D6/12 is applied, removing text describing behavior on systems with bytes consisting of more than eight bits. * find IEEE Std 1003.1-2001/Cor 2-2004, item XCU/TC2/D6/13 is applied, updating the RATIONALE section to be consistent with the normative text. * lex IEEE Std 1003.1-2001/Cor 2-2004, item XCU/TC2/D6/14 is applied, removing text describing behavior on systems with bytes consisting of more than eight bits. * localedef IEEE Std 1003.1-2001/Cor 2-2004, item XCU/TC2/D6/15 is applied, rewording the in the OPERANDS section describing the ability to create public locales. IEEE Std 1003.1-2001/Cor 2-2004, item XCU/TC2/D6/16 is applied, to make the text consistent with the descriptions of WIDTH and WIDTH_DEFAULT in the Base Definitions Volume of IEEE Std 1003.1-2001. * mailx IEEE Std 1003.1-2001/Cor 2-2004, item XCU/TC2/D6/17 is applied, updating the EXTENDED DESCRIPTION section (Internal Variables in Mailx). The system start-up file is changed from "implementation-defined" to unspecified for consistency with other text in the EXTENDED DESCRIPTION. * nice IEEE Std 1003.1-2001/Cor 2-2004, item XCU/TC2/D6/18 is applied, deleting a paragraph of RATIONALE that referred to text no longer in the standard. * od IEEE Std 1003.1-2001/Cor 2-2004, item XCU/TC2/D6/19 is applied, removing text describing behavior on systems with bytes consisting of more than eight bits. * pax IEEE Std 1003.1-2001/Cor 2-2004, item XCU/TC2/D6/20 is applied, updating the SYNOPSIS section, for consistency with the normative text. IEEE Std 1003.1-2001/Cor 2-2004, item XCU/TC2/D6/21 is applied, updating the DESCRIPTION section to describe the behavior when files to be linked are symbolic links and the system is not capable of making hard links to symbolic links. IEEE Std 1003.1-2001/Cor 2-2004, item XCU/TC2/D6/22 is applied, updating the OPTIONS section to describe the behavior for how multiple -odelete=pattern options are to be handled. IEEE Std 1003.1-2001/Cor 2-2004, item XCU/TC2/D6/23 is applied, updating the write option within the OPTIONS section. IEEE Std 1003.1-2001/Cor 2-2004, item XCU/TC2/D6/24 is applied, adding a paragraph into the OPTIONS section that states that says specifying more than one of the mutually-exclusive options (-H and -L) is not considered an error and that the last option specified will determine the behavior of the utility. IEEE Std 1003.1-2001/Cor 2-2004, item XCU/TC2/D6/25 is applied, removing the ctime paragraph within the EXTENDED DESCRIPTION section. There is a contradiction in the definition of the ctime keyword for pax's extended header, in that the st_ctime member of the stat structure does not refer to a file creation time. No field in the standard stat structure from includes a file creation time. IEEE Std 1003.1-2001/Cor 2-2004, item XCU/TC2/D6/26 is applied, making it clear that typeflag 1 (ustar interchange format) applies not only to to files that are hard-linked, but also to files that are aliased via symlinks. IEEE Std 1003.1-2001/Cor 2-2004, item XCU/TC2/D6/27 is applied, clarifying the cpio c_nlink field. * sed IEEE Std 1003.1-2001/Cor 2-2004, item XCU/TC2/D6/28 is applied, removing text describing behavior on systems with bytes consisting of more than eight bits. IEEE Std 1003.1-2001/Cor 2-2004, item XCU/TC2/D6/29 is applied, making an editorial correction within the Editing Commands in Sed section. * test IEEE Std 1003.1-2001/Cor 2-2004, item XCU/TC2/D6/30 is applied, rewording the existence primaries for the test utility. * tr IEEE Std 1003.1-2001/Cor 2-2004, item XCU/TC2/D6/31 is applied, removing text describing behavior on systems with bytes consisting of more than eight bits. IEEE Std 1003.1-2001/Cor 2-2004, item XCU/TC2/D6/32 is applied, updaing an example in the EXAMPLES section so as not to use unspecified behavior. IEEE Std 1003.1-2001/Cor 2-2004, item XCU/TC2/D6/33 is applied, making a correction to the RATIONALE section. * umask IEEE Std 1003.1-2001/Cor 2-2004, item XCU/TC2/D6/34 is applied, making a correction to the RATIONALE section. * uudecode IEEE Std 1003.1-2001/Cor 2-2004, item XCU/TC2/D6/35 is applied, clarifying in the DESCRIPTION section that the initial mode used if either of the op characters is '+' or '-' is unspecified. 4. Issues related to the Rationale * Section A.1.4 Terminology IEEE Std 1003.1-2001/Cor 2-2004, item XRAT/TC2/D6/2 is applied, clarifying that uses of the terms implementation-supplied and implementation-provided do not imply a requirement for documentation. * Section A.6.3 C Language Wide-Character Codes IEEE Std 1003.1-2001/Cor 2-2004, item XRAT/TC2/D6/3 is applied, adding rationale stating that the standard does not specify how wide characters are encoded not how to define wide characters in a charmap. * Section A.7.3.3 LC_MONETARY IEEE Std 1003.1-2001/Cor 2-2004, item XRAT/TC2/D6/4 is applied, updating the rationale to note an incompatible change in the standard compared to earlier versions for the currency symbol. * Section A.8.2 Internationalization Variables IEEE Std 1003.1-2001/Cor 2-2004, item XRAT/TC2/D6/5 is applied, adding clarifications relating to conforming utilities and internationalization variables. * Section A.12.2 Utility Syntax Guidelines IEEE Std 1003.1-2001/Cor 2-2004, item XRAT/TC2/D6/6 is applied, reworking the text related to Guidelines 1 and 2. * Section B.2.9.8 Use of Application-Managed Thread Stacks IEEE Std 1003.1-2001/Cor 2-2004, item XRAT/TC2/D6/7 is applied, adding a new section B.2.9.8, Use of Application-Managed Thread Stacks. * Section C.1.9 Utility Limits IEEE Std 1003.1-2001/Cor 2-2004, item XRAT/TC2/D6/8 is applied, deleting the paragraph "{POSIX2_SYMLINKS} was developed even though there is no comparable configuration value for the system interfaces." * Section C.2.6.4 Arithmetic Expansion IEEE Std 1003.1-2001/Cor 2-2004, item XRAT/TC2/D6/9 is applied, clarifying the rationale relating to arithmetic expressions.