stdio.3.patch   [plain text]


--- stdio.3	2004-11-25 11:38:35.000000000 -0800
+++ stdio.3.edit	2006-09-06 16:18:21.000000000 -0700
@@ -45,6 +45,20 @@
 .Vt FILE *stdin ;
 .Vt FILE *stdout ;
 .Vt FILE *stderr ;
+.Pp
+Note:
+The current implementation does not allow these variables
+to be evaluated at C compile/link time.
+That is, a runtime calculation must be performed, such as:
+.Bd -literal -offset indent
+#include <stdio.h>
+
+static FILE *var;
+
+int main() {
+    var = stdout;
+}
+.Ed
 .Sh DESCRIPTION
 The standard
 .Tn I/O
@@ -232,11 +246,21 @@
 .Dv putchar_unlocked
 exist and will be used if the macro
 definitions are explicitly removed.
+.Sh LEGACY SYNOPSIS
+The -D_NONSTD_SOURCE flag can be used
+to allow stdin, stdout, and/or stderr
+to be evaluated at compile/link time, as:
+.Bd -literal -offset indent
+#include <stdio.h>
+
+static FILE *var = stdout;
+.Ed
 .Sh SEE ALSO
 .Xr close 2 ,
 .Xr open 2 ,
 .Xr read 2 ,
-.Xr write 2
+.Xr write 2 ,
+.Xr compat 5
 .Sh BUGS
 The standard buffered functions do not interact well with certain other
 library and system functions, especially
@@ -250,7 +274,9 @@
 .Bl -column "Description"
 .It Sy "Function	Description"
 .It "asprintf	formatted output conversion"
+.It ""
 .It "clearerr	check and reset stream status"
+.It ""
 .It "fclose	close a stream"
 .It "fdopen	stream open functions"
 .It "feof	check and reset stream status"
@@ -282,15 +308,18 @@
 .It "fwopen	open a stream"
 .It "fwprintf	formatted wide character output conversion"
 .It "fwrite	binary stream input/output"
+.It ""
 .It "getc	get next character or word from input stream"
 .It "getchar	get next character or word from input stream"
 .It "gets	get a line from a stream"
 .It "getw	get next character or word from input stream"
 .It "getwc	get next wide character from input stream"
 .It "getwchar	get next wide character from input stream"
+.It ""
 .It "mkdtemp	create unique temporary directory"
 .It "mkstemp	create unique temporary file"
 .It "mktemp	create unique temporary file"
+.It ""
 .It "perror	system error messages"
 .It "printf	formatted output conversion"
 .It "putc	output a character or word to a stream"
@@ -299,8 +328,10 @@
 .It "putw	output a character or word to a stream"
 .It "putwc	output a wide character to a stream"
 .It "putwchar	output a wide character to a stream"
+.It ""
 .It "remove	remove directory entry"
 .It "rewind	reposition a stream"
+.It ""
 .It "scanf	input format conversion"
 .It "setbuf	stream buffering operations"
 .It "setbuffer	stream buffering operations"
@@ -313,11 +344,14 @@
 .It "swprintf	formatted wide character output conversion"
 .It "sys_errlist	system error messages"
 .It "sys_nerr	system error messages"
+.It ""
 .It "tempnam	temporary file routines"
 .It "tmpfile	temporary file routines"
 .It "tmpnam	temporary file routines"
+.It ""
 .It "ungetc	un-get character from input stream"
 .It "ungetwc	un-get wide character from input stream"
+.It ""
 .It "vasprintf	formatted output conversion"
 .It "vfprintf	formatted output conversion"
 .It "vfscanf	input format conversion"
@@ -329,5 +363,6 @@
 .It "vsscanf	input format conversion"
 .It "vswprintf	formatted wide character output conversion"
 .It "vwprintf	formatted wide character output conversion"
+.It ""
 .It "wprintf	formatted wide character output conversion"
 .El