Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ stdio(S) — OpenDesktop Software Development System 3.0.0

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

close(S)

ctermid(S)

cuserid(S)

fclose(S)

ferror(S)

fopen(S)

fread(S)

fseek(S)

getc(S)

gets(S)

lseek(S)

open(S)

pipe(S)

popen(S)

printf(S)

putc(S)

puts(S)

read(S)

scanf(S)

setbuf(S)

system(S)

tmpfile(S)

tmpnam(S)

ungetc(S)

write(S)


 stdio(S)                       6 January 1993                       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.

    If the program is compiled in the default mode, the following are defined
    only as macros: getc, getchar, putc, putchar, ferror, feof, clearerr, and
    fileno. If the program is compiled in -ansi, -posix, or -xpg3 mode, they
    exist as macros and functions. The function form can be used if the macro
    form is #undef'ed.

    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 per-
    tinent macro definitions, as follows:

       #include <stdio.h>

    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)) cause
    it to become buffered or line-buffered.  When an output stream is unbuf-
    fered, information is queued for writing on the destination file or ter-
    minal 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 termi-
    nal input is requested).  The setbuf or setvbuf functions in setbuf(S)
    may be used to change the stream's buffering strategy.

    The default setting for the open file limit (FOPENMAX) is 128.  For code
    compiled to be iBCS2 conformant, the default is 60.  The existing shared
    C library is iBCS2 conformant and, thus, is restricted to an open file
    limit of 60.  The static archive (libc.a) is restricted to 128.

 Diagnostics

    Invalid stream pointers usually cause disorders, possibly including pro-
    gram termination.  Individual function descriptions describe the possible
    error conditions.

 See also

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

 Standards conformance

    stdio is conformant with:
    ANSI X3.159-1989 Programming Language -- C;
    IEEE POSIX Std 1003.1-1990 System Application Program Interface (API) [C
    Language] (ISO/IEC 9945-1);
    AT&T SVID Issue 2;
    and X/Open Portability Guide, Issue 3, 1989.


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