Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

open(2)

close(2)

lseek(2)

pipe(2)

read(2)

write(2)

ctermid(3S)

cuserid(3S)

fclose(3S)

ferror(3S)

fopen(3S)

fread(3S)

fseek(3S)

getc(3S)

gets(3S)

popen(3S)

printf(3S)

putc(3S)

puts(3S)

scanf(3S)

setbuf(3S)

system(3S)

tmpfile(3S)

tmpnam(3S)

ungetc(3S)



stdio(3S)            STANDARD I/O FUNCTIONS             stdio(3S)



NAME
     stdio - standard buffered input/output package

SYNOPSIS
     #include <stdio.h>

     FILE *stdin, *stdout, *stderr;

DESCRIPTION
     The functions described in the entries  of  sub-class 3S  of
     this  manual constitute an efficient, user-level I/O buffer-
     ing scheme.  The in-line macros getc and putc handle charac-
     ters  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  [see
     intro(3)]  and is declared to be a pointer to a defined type
     FILE.  fopen 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

     The following symbolic values in <unistd.h> define the  file
     descriptors  that  will  be  associated  with the C-language
     stdin, stdout and stderr when the application is started:

          STDIN_FILENO     Standard input value,  stdin.  It  has
                           the value of 0.
          STDOUT_FILENO    Standard output value, stdout. It  has
                           the value of 1.
          STDERR_FILENO    Standard error value, stderr.  It  has
                           the value of 2.

     A constant null designates a null 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.

     An integer constant FILENAME_MAX specifies the  size  needed
     for  an  array of char large enough to hold the longest file



          Last change: C Programming Language Utilities         1





stdio(3S)            STANDARD I/O FUNCTIONS             stdio(3S)



     name  string  that  the  implementation  guarantees  can  be
     opened.

     An integer constant FOPEN_MAX specifies the  minimum  number
     of  files  that  the  implementation  guarantees can be open
     simultaneously.  Note that no more than  255  files  may  be
     opened  via  fopen,  and only file descriptors 0 through 255
     are valid.

     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 fol-
     lowing  ``functions''  are implemented as macros (redeclara-
     tion of these names  is  perilous):   getc,  getchar,  putc,
     putchar, ferror, feof, clearerr, and fileno.  There are also
     function versions of 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 termi-
     nal.   The standard error output stream stderr is by default
     unbuffered, but use of freopen [see fopen(3S)] will cause it
     to  become buffered or line-buffered.  When an output stream
     is unbuffered, information is queued for writing on the des-
     tination  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 ter-
     minal   input   is  requested).   setbuf  or  setvbuf  [both
     described in setbuf(3S)] may be used to change the  stream's
     buffering strategy.

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

DIAGNOSTICS
     Invalid stream pointers usually cause grave disorder, possi-
     bly  including  program  termination.   Individual  function
     descriptions describe the possible error conditions.




          Last change: C Programming Language Utilities         2



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