Annotation of 43BSDReno/lib/libc/stdio/stdio.3, revision 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.