Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ stdio(S) — System V/386 Software Development System 3.2.2b

Media Vault

Software Library

Restoration Projects

Artifacts Sought



     STDIO(S)                  UNIX System V                  STDIO(S)



     Name
          stdio - standard buffered input/output package

     Syntax
          #include <stdio.h>

          FILE *stdin, *stdout, *stderr;

     Description
          The functions described in this manual entry constitute an
          efficient, user-level I/O buffering scheme.  The in-line
          macros getc(S) and putc(S) handle characters quickly.  The
          macros getchar and putchar, and the higher-level routines
          fgetc, fgets, fprintf, fputc, fputs, fread, fscanf, fwrite,
          gets, getw, printf, puts, putw, and scanf all use or act as
          if they use getc and putc; they can be freely intermixed.

          A file with associated buffering is called a stream and is
          declared to be a pointer to a defined type FILE.  The
          fopen(S) function creates certain descriptive data for a
          stream and returns a pointer to designate the stream in all
          further transactions.  Normally, there are three open
          streams with constant pointers declared in the <stdio.h>
          header file and associated with the standard open files:

               stdin     standard input file
               stdout    standard output file
               stderr    standard error file

          A constant NULL (0) designates a nonexistent pointer.

          An integer-constant EOF (-1) is returned upon end-of-file or
          error by most integer functions that deal with streams (see
          the individual descriptions for details).

          An integer constant BUFSIZ specifies the size of the buffers
          used by the particular implementation.

          Any program that uses this package must include the header
          file of pertinent macro definitions, as follows:

          #include <stdio.h>

          The functions and constants mentioned in the entries of
          sub-class 3S of this manual are declared in that header file
          and need no further declaration.  The constants and the
          following ``functions'' are implemented as macros
          (redeclaration of these names is perilous): getc, getchar,
          putc, putchar, ferror, feof, clearerr, and fileno.

          Output streams, with the exception of the standard error
          stream stderr, are by default buffered if the output refers
          to a file, and line-buffered if the output refers to a
          terminal.  The standard error output stream stderr is by
          default unbuffered, but use of freopen (see fopen(S)) will
          cause it to become buffered or line-buffered.  When an
          output stream is unbuffered, information is queued for
          writing on the destination file or terminal as soon as
          written.  When it is buffered, many characters are saved up
          and written as a block.  When it is line-buffered, each line
          of output is queued for writing on the destination terminal
          as soon as the line is completed (that is, as soon as a
          new-line character is written or terminal input is
          requested).  The setbuf(S) or setvbuf() functions in
          setbuf(S) may be used to change the stream's buffering
          strategy.

     See Also
          open(S), close(S), lseek(S), pipe(S), read(S), write(S),
          ctermid(S), cuserid(S), fclose(S), ferror(S), fopen(S),
          fread(S), fseek(S), getc(S), gets(S), popen(S), printf(S),
          putc(S), puts(S), scanf(S), setbuf(S), system(S),
          tmpfile(S), tmpnam(S), ungetc(S)

     Diagnostics
          Invalid stream pointers will usually cause grave disorder,
          possibly including program termination.  Individual function
          descriptions describe the possible error conditions.

     Standards Conformance
          stdio is conformant with:
          AT&T SVID Issue 2, Select Code 307-127;
          and The X/Open Portability Guide II of January 1987.

                                             (printed 6/20/89)

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026