Annotation of 43BSDReno/lib/libc/stdio/stdio.3, revision 1.1.1.1

1.1       root        1: .\" Copyright (c) 1980 Regents of the University of California.
                      2: .\" All rights reserved.  The Berkeley software License Agreement
                      3: .\" specifies the terms and conditions for redistribution.
                      4: .\"
                      5: .\"    @(#)stdio.3     6.2 (Berkeley) 5/13/86
                      6: .\"
                      7: .TH STDIO 3S "May 13, 1986"
                      8: .UC 4
                      9: .SH NAME
                     10: stdio \- standard buffered input/output package
                     11: .SH SYNOPSIS
                     12: .B #include <stdio.h>
                     13: .PP
                     14: .SM
                     15: .B FILE
                     16: .B *stdin;
                     17: .br
                     18: .SM
                     19: .B FILE
                     20: .B *stdout;
                     21: .br
                     22: .SM
                     23: .B FILE
                     24: .B *stderr;
                     25: .SH DESCRIPTION
                     26: The functions described in section 3S constitute a user-level buffering
                     27: scheme.  The in-line macros
                     28: .I getc
                     29: and
                     30: .IR  putc (3S)
                     31: handle characters quickly.  The higher level routines
                     32: .IR gets ,
                     33: .IR fgets ,
                     34: .IR scanf ,
                     35: .IR fscanf ,
                     36: .IR fread ,
                     37: .IR puts ,
                     38: .IR fputs ,
                     39: .IR printf ,
                     40: .IR fprintf ,
                     41: .IR fwrite
                     42: all use
                     43: .I getc
                     44: and
                     45: .IR putc ;
                     46: they can be freely intermixed.
                     47: .PP
                     48: A file with associated buffering is called a
                     49: .IR stream ,
                     50: and is declared to be a pointer to a defined type
                     51: .SM
                     52: .BR FILE .
                     53: .IR  Fopen (3S)
                     54: creates certain descriptive data for a stream
                     55: and returns a pointer to designate the stream in all further transactions.
                     56: There are three normally open streams with constant pointers declared in
                     57: the include file and associated with the standard open files:
                     58: .TP 10n
                     59: .B stdin
                     60: standard input file
                     61: .br
                     62: .ns
                     63: .TP
                     64: .B stdout
                     65: standard output file
                     66: .br
                     67: .ns
                     68: .TP
                     69: .B stderr
                     70: standard error file
                     71: .PP
                     72: A constant `pointer'
                     73: .SM
                     74: .B NULL
                     75: (0)
                     76: designates no stream at all.
                     77: .PP
                     78: An integer constant
                     79: .SM
                     80: .B EOF
                     81: (\-1) is returned upon end of file or error by integer functions that
                     82: deal with streams.
                     83: .PP
                     84: Any routine that uses the standard input/output package
                     85: must include the header file
                     86: .RI < stdio.h >
                     87: of pertinent macro definitions.
                     88: The functions and constants mentioned in sections labeled 3S
                     89: are declared in the include file and need no further declaration.
                     90: The constants, and the following `functions' are
                     91: implemented as macros; redeclaration of these names is perilous:
                     92: .IR getc ,
                     93: .IR getchar ,
                     94: .IR putc ,
                     95: .IR putchar ,
                     96: .IR feof ,
                     97: .IR ferror ,
                     98: .IR fileno .
                     99: .SH "SEE ALSO"
                    100: open(2), close(2), read(2), write(2), fread(3S), fseek(3S), f*(3S)
                    101: .SH DIAGNOSTICS
                    102: The value
                    103: .SM
                    104: .B EOF
                    105: is returned uniformly to indicate that a
                    106: .SM
                    107: .B FILE
                    108: pointer has not been initialized with
                    109: .IR fopen ,
                    110: input (output) has been attempted on an output (input) stream, or a
                    111: .SM
                    112: .B FILE
                    113: pointer designates corrupt or otherwise unintelligible
                    114: .SM
                    115: .B FILE
                    116: data.
                    117: .PP
                    118: For purposes of efficiency, this implementation of the standard library
                    119: has been changed to line buffer output to a terminal by default and attempts
                    120: to do this transparently by flushing the output whenever a 
                    121: .IR read (2)
                    122: from the standard input is necessary.  This is almost always transparent,
                    123: but may cause confusion or malfunctioning of programs which use
                    124: standard i/o routines but use
                    125: .IR read (2)
                    126: themselves to read from the standard input.
                    127: .PP
                    128: In cases where a large amount of computation is done after printing
                    129: part of a line on an output terminal, it is necessary to
                    130: .IR fflush (3S)
                    131: the standard output before going off and computing so that the output
                    132: will appear.
                    133: .SH BUGS
                    134: The standard buffered functions do not interact well with certain other
                    135: library and system functions, especially \fIvfork\fP and \fIabort\fP.
                    136: .SH "LIST OF FUNCTIONS"
                    137: .sp 2
                    138: .nf
                    139: .ta \w'setlinebuf'u+2n +\w'setbuf.3s'u+10n
                    140: \fIName\fP     \fIAppears on Page\fP   \fIDescription\fP
                    141: .ta \w'setlinebuf'u+4n +\w'setbuf.3s'u+4n
                    142: .sp 5p
                    143: clearerr       ferror.3s       stream status inquiries
                    144: fclose fclose.3s       close or flush a stream
                    145: fdopen fopen.3s        open a stream
                    146: feof   ferror.3s       stream status inquiries
                    147: ferror ferror.3s       stream status inquiries
                    148: fflush fclose.3s       close or flush a stream
                    149: fgetc  getc.3s get character or word from stream
                    150: fgets  gets.3s get a string from a stream
                    151: fileno ferror.3s       stream status inquiries
                    152: fopen  fopen.3s        open a stream
                    153: fprintf        printf.3s       formatted output conversion
                    154: fputc  putc.3s put character or word on a stream
                    155: fputs  puts.3s put a string on a stream
                    156: fread  fread.3s        buffered binary input/output
                    157: freopen        fopen.3s        open a stream
                    158: fscanf scanf.3s        formatted input conversion
                    159: fseek  fseek.3s        reposition a stream
                    160: ftell  fseek.3s        reposition a stream
                    161: fwrite fread.3s        buffered binary input/output
                    162: getc   getc.3s get character or word from stream
                    163: getchar        getc.3s get character or word from stream
                    164: gets   gets.3s get a string from a stream
                    165: getw   getc.3s get character or word from stream
                    166: printf printf.3s       formatted output conversion
                    167: putc   putc.3s put character or word on a stream
                    168: putchar        putc.3s put character or word on a stream
                    169: puts   puts.3s put a string on a stream
                    170: putw   putc.3s put character or word on a stream
                    171: rewind fseek.3s        reposition a stream
                    172: scanf  scanf.3s        formatted input conversion
                    173: setbuf setbuf.3s       assign buffering to a stream
                    174: setbuffer      setbuf.3s       assign buffering to a stream
                    175: setlinebuf     setbuf.3s       assign buffering to a stream
                    176: sprintf        printf.3s       formatted output conversion
                    177: sscanf scanf.3s        formatted input conversion
                    178: ungetc ungetc.3s       push character back into input stream
                    179: .fi

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.