The following issue has been SUBMITTED. ====================================================================== https://austingroupbugs.net/view.php?id=1493 ====================================================================== Reported By: geoffclare Assigned To: ====================================================================== Project: 1003.1(2016/18)/Issue7+TC2 Issue ID: 1493 Category: Shell and Utilities Type: Enhancement Request Severity: Comment Priority: normal Status: New Name: Geoff Clare Organization: The Open Group User Reference: Section: 2.7 Page Number: 2360 Line Number: 75306 Interp Status: --- Final Accepted Text: ====================================================================== Date Submitted: 2021-07-29 14:33 UTC Last Modified: 2021-07-29 14:33 UTC ====================================================================== Summary: move XCU 2.7 definition of "file descriptor" into XBD 3 Description: XCU 2.7 Redirection has a definition of "file descriptor" that should be incorporated into the definition in XBD chapter 3 instead of being tucked away there.
Also, the definitions of standard error/input/output currently say they are streams, but they are also used in XCU (and perhaps elsewhere) to refer to file descriptors. Desired Action: On page 60 line 1783 section 3.166 File Descriptor, after:<blockquote>A per-process unique, non-negative integer used to identify an open file for the purpose of file access.</blockquote>append:<blockquote>The values 0, 1, and 2 have special meaning and conventional uses, and are referred to as <i>standard input</i>, <i>standard output</i>, and <i>standard error</i>, respectively. Programs usually take their input from standard input, and write output on standard output. Diagnostic messages are usually written on standard error.</blockquote> On page 92 line 2575 section 3.366 Standard Error, change:<blockquote>An output stream usually intended to be used for diagnostic messages.</blockquote>to:<blockquote>In the context of file descriptors (see [xref to 3.166 File Descriptor]), file descriptor number 2. In the context of standard I/O streams (see [xref to XSH 2.5]), an output stream usually intended to be used for diagnostic messages, and accessed using the global variable <i>stderr</i>. <b>Note:</b> The file descriptor underlying <i>stderr</i> is initially 2, but it can be changed by <i>freopen</i>() to 0 or 1 (and implementations may have extensions that allow it to be changed to other numbers). Therefore, writing to the standard error stream does not always produce output on the standard error file descriptor.</blockquote> On page 92 line 2577 section 3.367 Standard Input, change:<blockquote>An input stream usually intended to be used for primary data input.</blockquote>to:<blockquote>In the context of file descriptors (see [xref to 3.166 File Descriptor]), file descriptor number 0. In the context of standard I/O streams (see [xref to XSH 2.5]), an input stream usually intended to be used for primary data input, and accessed using the global variable <i>stdin</i>. <b>Note:</b> The file descriptor underlying <i>stdin</i> is initially 0; this cannot change through the use of interfaces defined in this standard, but implementations may have extensions that allow it to be changed. Therefore, in conforming applications using extensions, reading from the standard input stream does not always obtain input from the standard input file descriptor.</blockquote> On page 92 line 2579 section 3.368 Standard Output, change:<blockquote>An output stream usually intended to be used for primary data output.</blockquote>to:<blockquote>In the context of file descriptors (see [xref to 3.166 File Descriptor]), file descriptor number 1. In the context of standard I/O streams (see [xref to XSH 2.5]), an output stream usually intended to be used for primary data output, and accessed using the global variable <i>stdout</i>. <b>Note:</b> The file descriptor underlying <i>stdout</i> is initially 1, but it can be changed by <i>freopen</i>() to 0 (and implementations may have extensions that allow it to be changed to other numbers). Therefore, writing to the standard output stream does not always produce output on the standard output file descriptor.</blockquote> On page 2360 line 75294 section 2.7 Redirection, change:<blockquote>The number <i>n</i> is an optional decimal number designating the file descriptor number; the application shall ensure it is delimited from any preceding text and immediately precede the redirection operator <i>redir-op</i>.</blockquote>to:<blockquote>The number <i>n</i> is an optional one or more digit decimal number designating the file descriptor number; the application shall ensure it is delimited from any preceding text and immediately precedes the redirection operator <i>redir-op</i> (with no intervening <blank> characters allowed).</blockquote> On page 2360 line 75304 section 2.7 Redirection, change:<blockquote>Open files are represented by decimal numbers starting with zero. The largest possible value is implementation-defined; however, all implementations shall support at least 0 to 9, inclusive, for use by the application. These numbers are called "file descriptors". The values 0, 1, and 2 have special meaning and conventional uses and are implied by certain redirection operations; they are referred to as <i>standard input</i>, <i>standard output</i>, and <i>standard error</i>, respectively. Programs usually take their input from standard input, and write output on standard output. Error messages are usually written on standard error. The redirection operators can be preceded by one or more digits (with no intervening <blank> characters allowed) to designate the file descriptor number.</blockquote>to:<blockquote>The largest file descriptor number supported in shell redirections is implementation-defined; however, all implementations shall support at least 0 to 9, inclusive, for use by the application.</blockquote> ====================================================================== Issue History Date Modified Username Field Change ====================================================================== 2021-07-29 14:33 geoffclare New Issue 2021-07-29 14:33 geoffclare Name => Geoff Clare 2021-07-29 14:33 geoffclare Organization => The Open Group 2021-07-29 14:33 geoffclare Section => 2.7 2021-07-29 14:33 geoffclare Page Number => 2360 2021-07-29 14:33 geoffclare Line Number => 75306 2021-07-29 14:33 geoffclare Interp Status => --- ======================================================================