Annotation of cci/usr/src/man/man3/intro.3s, revision 1.1.1.1

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

unix.superglobalmegacorp.com

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