Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

open(2)

close(2)

read(2)

write(2)

fread(3s)

fseek(3s)



INTRO(3S)               COMMAND REFERENCE               INTRO(3S)



NAME
     stdio - standard buffered input/output package

SYNOPSIS
     #include <stdio.h>

     FILE *stdin;
     FILE *stdout;
     FILE *stderr;

DESCRIPTION
     The functions described in section 3S constitute a user-
     level buffering scheme.  The in-line macros getc and
     putc(3s) handle characters quickly.  The higher level
     routines gets, fgets, scanf, fscanf, fread, puts, fputs,
     printf, fprintf, and fwrite all 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.  Fopen(3s)
     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 the include file and associated with the
     standard open files:

          stdin   Standard input file.

          stdout  Standard output file.

          stderr  Standard error file.

     A constant pointer NULL (0) designates no stream at all.

     An integer constant EOF (-1) is returned upon end-of-file or
     error by integer functions that deal with streams.

     Any routine that uses the standard input/output package must
     include the header file <stdio.h> of pertinent macro
     definitions.  The functions and constants mentioned in
     sections labeled 3S are declared in the include 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,
     feof, ferror, and fileno.

DIAGNOSTICS
     The value EOF is returned uniformly to indicate that a FILE
     pointer has not been initialized with fopen, input (output)
     has been attempted on an output (input) stream, or a FILE
     pointer designates corrupt or otherwise unintelligible FILE
     data.



Printed 5/12/88                                                 1





INTRO(3S)               COMMAND REFERENCE               INTRO(3S)



     For purposes of efficiency, this implementation of the
     standard library has been changed to line buffer output to a
     terminal by default and attempts to do this transparently by
     flushing the output whenever a read(2) from the standard
     input is necessary.  This is almost always transparent, but
     may cause confusion or malfunctioning of programs which use
     standard I/O routines but use read(2) themselves to read
     from the standard input.

     In cases where a large amount of computation is done after
     printing part of a line on an output terminal, it is
     necessary to fflush(3s) the standard output before going off
     and computing so that the output will appear.

CAVEATS
     The standard buffered functions do not interact well with
     certain other library and system functions, especially vfork
     and abort.

SEE ALSO
     open(2), close(2), read(2), write(2), fread(3s), and
     fseek(3s).

































Printed 5/12/88                                                 2



%%index%%
na:288,98;
sy:386,691;
de:1077,2906;
di:3983,591;4934,753;
ca:5687,324;
se:6011,255;
%%index%%000000000118

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