fix rest of Chris' bugs, mostly sign and padding placement
[unix-history] / usr / src / lib / libc / stdio / stdio.3
index 7f6e10e..b8f54e5 100644 (file)
@@ -2,9 +2,9 @@
 .\" All rights reserved.  The Berkeley software License Agreement
 .\" specifies the terms and conditions for redistribution.
 .\"
 .\" All rights reserved.  The Berkeley software License Agreement
 .\" specifies the terms and conditions for redistribution.
 .\"
-.\"    @(#)stdio.3     4.1 (Berkeley) %G%
+.\"    @(#)stdio.3     6.2 (Berkeley) %G%
 .\"
 .\"
-.TH STDIO 3S 
+.TH STDIO 3S ""
 .UC 4
 .SH NAME
 stdio \- standard buffered input/output package
 .UC 4
 .SH NAME
 stdio \- standard buffered input/output package
@@ -23,36 +23,40 @@ stdio \- standard buffered input/output package
 .B FILE
 .B *stderr;
 .SH DESCRIPTION
 .B FILE
 .B *stderr;
 .SH DESCRIPTION
-The functions described in Sections 3S constitute an efficient
-user-level buffering scheme.
-The in-line macros
+The functions described in section 3S constitute a user-level buffering
+scheme.  The in-line macros
 .I getc
 and
 .I getc
 and
-.IR  putc (3)
-handle characters quickly.
-The higher level routines
-.I "gets, fgets, scanf, fscanf, fread,"
-.I "puts, fputs, printf, fprintf, fwrite"
+.IR  putc (3S)
+handle characters quickly.  The higher level routines
+.IR gets ,
+.IR fgets ,
+.IR scanf ,
+.IR fscanf ,
+.IR fread ,
+.IR puts ,
+.IR fputs ,
+.IR printf ,
+.IR fprintf ,
+.IR fwrite
 all use
 .I getc
 and
 all use
 .I getc
 and
-.I putc;
+.IR putc ;
 they can be freely intermixed.
 .PP
 A file with associated buffering is called a
 they can be freely intermixed.
 .PP
 A file with associated buffering is called a
-.I stream,
+.IR stream ,
 and is declared to be a pointer to a defined type
 .SM
 and is declared to be a pointer to a defined type
 .SM
-.B FILE.
-.IR  Fopen (3)
+.BR FILE .
+.IR  Fopen (3S)
 creates certain descriptive data for a stream
 creates certain descriptive data for a stream
-and returns a pointer to designate the stream in all
-further transactions.
-There are three normally open streams with constant
-pointers declared in
+and returns a pointer to designate the stream in all further transactions.
+There are three normally open streams with constant pointers declared in
 the include file and associated with the standard open files:
 .TP 10n
 the include file and associated with the standard open files:
 .TP 10n
-.BR stdin
+.B stdin
 standard input file
 .br
 .ns
 standard input file
 .br
 .ns
@@ -62,7 +66,7 @@ standard output file
 .br
 .ns
 .TP
 .br
 .ns
 .TP
-.BR stderr
+.B stderr
 standard error file
 .PP
 A constant `pointer'
 standard error file
 .PP
 A constant `pointer'
@@ -74,28 +78,26 @@ designates no stream at all.
 An integer constant
 .SM
 .B EOF
 An integer constant
 .SM
 .B EOF
-(\-1) is returned
-upon end of file or error by integer functions that
+(\-1) is returned upon end of file or error by integer functions that
 deal with streams.
 .PP
 Any routine that uses the standard input/output package
 deal with streams.
 .PP
 Any routine that uses the standard input/output package
-must include the header file <stdio.h> of pertinent
-macro definitions.
+must include the header file
+.RI < stdio.h >
+of pertinent macro definitions.
 The functions and constants mentioned in sections labeled 3S
 The functions and constants mentioned in sections labeled 3S
-are declared in the include file
-and need no further declaration.
+are declared in the include file and need no further declaration.
 The constants, and the following `functions' are
 The constants, and the following `functions' are
-implemented as macros; redeclaration of these names
-is perilous:
-.I getc,
-.I getchar,
-.I putc,
-.I putchar,
-.I feof,
-.I ferror,
+implemented as macros; redeclaration of these names is perilous:
+.IR getc ,
+.IR getchar ,
+.IR putc ,
+.IR putchar ,
+.IR feof ,
+.IR ferror ,
 .IR fileno .
 .SH "SEE ALSO"
 .IR fileno .
 .SH "SEE ALSO"
-open(2), close(2), read(2), write(2)
+open(2), close(2), read(2), write(2), fread(3S), fseek(3S), f*(3S)
 .SH DIAGNOSTICS
 The value
 .SM
 .SH DIAGNOSTICS
 The value
 .SM
@@ -104,9 +106,8 @@ is returned uniformly to indicate that a
 .SM
 .B FILE
 pointer has not been initialized with
 .SM
 .B FILE
 pointer has not been initialized with
-.I fopen,
-input (output) has been attempted on an output (input) stream,
-or a
+.IR fopen ,
+input (output) has been attempted on an output (input) stream, or a
 .SM
 .B FILE
 pointer designates corrupt or otherwise unintelligible
 .SM
 .B FILE
 pointer designates corrupt or otherwise unintelligible
@@ -126,6 +127,53 @@ themselves to read from the standard input.
 .PP
 In cases where a large amount of computation is done after printing
 part of a line on an output terminal, it is necessary to
 .PP
 In cases where a large amount of computation is done after printing
 part of a line on an output terminal, it is necessary to
-.IR fflush (3)
+.IR fflush (3S)
 the standard output before going off and computing so that the output
 will appear.
 the standard output before going off and computing so that the output
 will appear.
+.SH BUGS
+The standard buffered functions do not interact well with certain other
+library and system functions, especially \fIvfork\fP and \fIabort\fP.
+.SH "LIST OF FUNCTIONS"
+.sp 2
+.nf
+.ta \w'setlinebuf'u+2n +\w'setbuf.3s'u+10n
+\fIName\fP     \fIAppears on Page\fP   \fIDescription\fP
+.ta \w'setlinebuf'u+4n +\w'setbuf.3s'u+4n
+.sp 5p
+clearerr       ferror.3s       stream status inquiries
+fclose fclose.3s       close or flush a stream
+fdopen fopen.3s        open a stream
+feof   ferror.3s       stream status inquiries
+ferror ferror.3s       stream status inquiries
+fflush fclose.3s       close or flush a stream
+fgetc  getc.3s get character or word from stream
+fgets  gets.3s get a string from a stream
+fileno ferror.3s       stream status inquiries
+fopen  fopen.3s        open a stream
+fprintf        printf.3s       formatted output conversion
+fputc  putc.3s put character or word on a stream
+fputs  puts.3s put a string on a stream
+fread  fread.3s        buffered binary input/output
+freopen        fopen.3s        open a stream
+fscanf scanf.3s        formatted input conversion
+fseek  fseek.3s        reposition a stream
+ftell  fseek.3s        reposition a stream
+fwrite fread.3s        buffered binary input/output
+getc   getc.3s get character or word from stream
+getchar        getc.3s get character or word from stream
+gets   gets.3s get a string from a stream
+getw   getc.3s get character or word from stream
+printf printf.3s       formatted output conversion
+putc   putc.3s put character or word on a stream
+putchar        putc.3s put character or word on a stream
+puts   puts.3s put a string on a stream
+putw   putc.3s put character or word on a stream
+rewind fseek.3s        reposition a stream
+scanf  scanf.3s        formatted input conversion
+setbuf setbuf.3s       assign buffering to a stream
+setbuffer      setbuf.3s       assign buffering to a stream
+setlinebuf     setbuf.3s       assign buffering to a stream
+sprintf        printf.3s       formatted output conversion
+sscanf scanf.3s        formatted input conversion
+ungetc ungetc.3s       push character back into input stream
+.fi