]> git.saurik.com Git - apple/libc.git/blobdiff - stdio/FreeBSD/stdio.3
Libc-997.1.1.tar.gz
[apple/libc.git] / stdio / FreeBSD / stdio.3
index 95aba8ccbf8c25a25011d0096f2197a6bfff0278..1cf1be677da6c3ab6438ea32b456106a794a3975 100644 (file)
@@ -9,10 +9,6 @@
 .\" 2. Redistributions in binary form must reproduce the above copyright
 .\"    notice, this list of conditions and the following disclaimer in the
 .\"    documentation and/or other materials provided with the distribution.
-.\" 3. All advertising materials mentioning features or use of this software
-.\"    must display the following acknowledgement:
-.\"    This product includes software developed by the University of
-.\"    California, Berkeley and its contributors.
 .\" 4. Neither the name of the University nor the names of its contributors
 .\"    may be used to endorse or promote products derived from this software
 .\"    without specific prior written permission.
@@ -30,9 +26,9 @@
 .\" SUCH DAMAGE.
 .\"
 .\"     @(#)stdio.3    8.7 (Berkeley) 4/19/94
-.\" $FreeBSD: src/lib/libc/stdio/stdio.3,v 1.24 2003/02/23 01:47:47 ru Exp $
+.\" $FreeBSD: src/lib/libc/stdio/stdio.3,v 1.30 2009/03/04 03:38:51 das Exp $
 .\"
-.Dd January 10, 2003
+.Dd March 3, 2009
 .Dt STDIO 3
 .Os
 .Sh NAME
 .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
@@ -92,15 +102,19 @@ object is indeterminate (garbage) after a file is closed.
 .Pp
 A file may be subsequently reopened, by the same or another program
 execution, and its contents reclaimed or modified (if it can be repositioned
-at the start).  If the main function returns to its original caller, or
+at the start).
+If the main function returns to its original caller, or
 the
 .Xr exit 3
 function is called, all open files are closed (hence all output
-streams are flushed) before program termination.  Other methods
+streams are flushed) before program termination.
+Other methods
 of program termination may not close files properly and hence
-buffered output may be lost.  In particular,
+buffered output may be lost.
+In particular,
 .Xr _exit 2
-does not flush stdio files.  Neither does an exit due to a signal.
+does not flush stdio files.
+Neither does an exit due to a signal.
 Buffers are flushed by
 .Xr abort 3
 as required by POSIX, although previous implementations did not.
@@ -186,41 +200,63 @@ without first removing their current definitions with
 .Dv SEEK_END ,
 .Dv SEEK_SET ,
 .Dv TMP_MAX ,
+.Dv clearerr ,
 .Dv clearerr_unlocked ,
+.Dv feof ,
 .Dv feof_unlocked ,
+.Dv ferror ,
 .Dv ferror_unlocked ,
+.Dv fileno ,
 .Dv fileno_unlocked ,
 .Dv fropen ,
 .Dv fwopen ,
+.Dv getc ,
 .Dv getc_unlocked ,
+.Dv getchar ,
 .Dv getchar_unlocked ,
+.Dv putc ,
 .Dv putc_unlocked ,
+.Dv putchar ,
 .Dv putchar_unlocked ,
 .Dv stderr ,
 .Dv stdin
 and
 .Dv stdout .
 Function versions of the macro functions
+.Dv clearerr ,
 .Dv clearerr_unlocked ,
+.Dv feof ,
 .Dv feof_unlocked ,
+.Dv ferror ,
 .Dv ferror_unlocked ,
+.Dv fileno ,
 .Dv fileno_unlocked ,
+.Dv getc ,
 .Dv getc_unlocked ,
+.Dv getchar ,
 .Dv getchar_unlocked ,
-.Dv putc_unlocked
+.Dv putc ,
+.Dv putc_unlocked ,
+.Dv putchar ,
 and
 .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
-.Sh BUGS
-The standard buffered functions do not interact well with certain other
-library and system functions, especially
-.Xr vfork 2 .
+.Xr write 2 ,
+.Xr compat 5
 .Sh STANDARDS
 The
 .Nm
@@ -230,7 +266,9 @@ library conforms to
 .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"
@@ -262,15 +300,20 @@ library conforms to
 .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 "getdelim  get a line from a stream"
+.It "getline   get a line from a 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"
@@ -279,8 +322,10 @@ library conforms to
 .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"
@@ -293,11 +338,14 @@ library conforms to
 .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"
@@ -309,5 +357,10 @@ library conforms to
 .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
+.Sh BUGS
+The standard buffered functions do not interact well with certain other
+library and system functions, especially
+.Xr vfork 2 .