unixdev.net


Switch to SpeakEasy.net DSL

The Modular Manual Browser

Home Page
Manual: (4.2BSD)
Page:
Section:
Apropos / Subsearch:
optional field

INTRO(3S)                                                            INTRO(3S)



NAME
       stdio - standard buffered input/output package

SYNOPSIS
       #include <&lt;stdio.h>&gt;

       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, 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 associ-
       ated 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  func-
       tions  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,
       fileno.

SEE ALSO
       open(2), close(2), read(2), write(2), fread(3S), fseek(3S), f*(3S)

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 oth-
       erwise unintelligible FILE data.

       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.

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

LIST OF FUNCTIONS
       Name        Appears on Page    Description
       clearerr      ferror.3s    stream status inquiries
       fclose        fclose.3s    close or flush a stream
       fdopen        fopen.3s     open a stream
       feof          ferror.3s    stream status inquiries
       ferror        ferror.3s    stream status inquiries
       fflush        fclose.3s    close or flush a stream
       fgetc         getc.3s      get character or word from stream
       fgets         gets.3s      get a string from a stream
       fileno        ferror.3s    stream status inquiries
       fopen         fopen.3s     open a stream
       fprintf       printf.3s    formatted output conversion
       fputc         putc.3s      put character or word on a stream
       fputs         puts.3s      put a string on a stream
       fread         fread.3s     buffered binary input/output
       freopen       fopen.3s     open a stream
       fscanf        scanf.3s     formatted input conversion
       fseek         fseek.3s     reposition a stream
       ftell         fseek.3s     reposition a stream
       fwrite        fread.3s     buffered binary input/output
       getc          getc.3s      get character or word from stream
       getchar       getc.3s      get character or word from stream
       gets          gets.3s      get a string from a stream
       getw          getc.3s      get character or word from stream
       printf        printf.3s    formatted output conversion
       putc          putc.3s      put character or word on a stream
       putchar       putc.3s      put character or word on a stream
       puts          puts.3s      put a string on a stream
       putw          putc.3s      put character or word on a stream
       rewind        fseek.3s     reposition a stream
       scanf         scanf.3s     formatted input conversion
       setbuf        setbuf.3s    assign buffering to a stream
       setbuffer     setbuf.3s    assign buffering to a stream
       setlinebuf    setbuf.3s    assign buffering to a stream
       sprintf       printf.3s    formatted output conversion
       sscanf        scanf.3s     formatted input conversion
       ungetc        ungetc.3s    push character back into input stream



4th Berkeley Distribution        18 July 1983                        INTRO(3S)