# stdio

## NAME



           stdio - standard input/output library functions
    


## LIBRARY



           Standard C library (_libc_ , _-lc_)
    


## SYNOPSIS



           **#include <stdio.h>**
    
           **extern FILE  ***_stdin_**;**
           **extern FILE  ***_stdout_**;**
           **extern FILE  ***_stderr_**;**
    


## DESCRIPTION



           The standard I/O library provides a simple and efficient buffered
           stream I/O interface.  Input and output is mapped into logical
           data streams and the physical I/O characteristics are concealed.
           The functions and macros are listed below; more information is
           available from the individual man pages.
    
           A stream is associated with an external file (which may be a
           physical device) by _opening_ a file, which may involve creating a
           new file.  Creating an existing file causes its former contents to
           be discarded.  If a file can support positioning requests (such as
           a disk file, as opposed to a terminal), then a _file position_
           _indicator_ associated with the stream is positioned at the start of
           the file (byte zero), unless the file is opened with append mode.
           If append mode is used, it is unspecified whether the position
           indicator will be placed at the start or the end of the file.  The
           position indicator is maintained by subsequent reads, writes, and
           positioning requests.  All input occurs as if the characters were
           read by successive calls to the fgetc(3) function; all output
           takes place as if all characters were written by successive calls
           to the fputc(3) function.
    
           A file is disassociated from a stream by _closing_ the file.  Output
           streams are flushed (any unwritten buffer contents are transferred
           to the host environment) before the stream is disassociated from
           the file.  The value of a pointer to a _FILE_ object is
           indeterminate after a file is closed (garbage).
    
           A file may be subsequently reopened, by the same or another
           program execution, and its contents reclaimed or modified (if it
           can be repositioned at the start).  If the main function returns
           to its original caller, or the exit(3) function is called, all
           open files are closed (hence all output streams are flushed)
           before program termination.  Other methods of program termination,
           such as abort(3) do not bother about closing files properly.
    
           At program startup, three text streams are predefined and need not
           be opened explicitly: _standard input_ (for reading conventional
           input), _standard output_ (for writing conventional output), and
           _standard error_ (for writing diagnostic output).  These streams are
           abbreviated _stdin_ , _stdout_ , and _stderr_.  When opened, the standard
           error stream is not fully buffered; the standard input and output
           streams are fully buffered if and only if the streams do not refer
           to an interactive device.
    
           Output streams that refer to terminal devices are always line
           buffered by default; pending output to such streams is written
           automatically whenever an input stream that refers to a terminal
           device is read.  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(3) the standard output before going off and
           computing so that the output will appear.
    
           The _stdio_ library is a part of the library **libc** and routines are
           automatically loaded as needed by **cc**(1).  The SYNOPSIS sections of
           the following manual pages indicate which include files are to be
           used, what the compiler declaration for the function looks like
           and which external variables are of interest.
    
           The following are defined as macros; these names may not be reused
           without first removing their current definitions with **#undef** :
           **BUFSIZ** , **EOF** , **FILENAME_MAX** , **FOPEN_MAX** , **L_cuserid** , **L_ctermid** ,
           **L_tmpnam** , **NULL** , **SEEK_END** , **SEEK_SET** , **SEEK_CUR** , **TMP_MAX** , **clearerr** ,
           **feof** , **ferror** , **fileno** , **getc** , **getchar** , **putc** , **putchar** , **stderr** , **stdin** ,
           **stdout**.  Function versions of the macro functions **feof** , **ferror** ,
           **clearerr** , **fileno** , **getc** , **getchar** , **putc** , and **putchar** exist and will
           be used if the macros definitions are explicitly removed.
    
       **List of functions**
           **Function             Description**
           ───────────────────────────────────────────────────────────────────
           clearerr(3)          check and reset stream status
           fclose(3)            close a stream
           fdopen(3)            stream open functions
           feof(3)              check and reset stream status
           ferror(3)            check and reset stream status
           fflush(3)            flush a stream
           fgetc(3)             get next character or word from input stream
           fgetpos(3)           reposition a stream
           fgets(3)             get a line from a stream
           fileno(3)            return the integer descriptor of the argument
                                stream
           fmemopen(3)          open memory as stream
           fopen(3)             stream open functions
           fopencookie(3)       open a custom stream
           fprintf(3)           formatted output conversion
           fpurge(3)            flush a stream
           fputc(3)             output a character or word to a stream
           fputs(3)             output a line to a stream
           fread(3)             binary stream input/output
           freopen(3)           stream open functions
           fscanf(3)            input format conversion
           fseek(3)             reposition a stream
           fsetpos(3)           reposition a stream
           ftell(3)             reposition a stream
           fwrite(3)            binary stream input/output
           getc(3)              get next character or word from input stream
           getchar(3)           get next character or word from input stream
           gets(3)              get a line from a stream
           getw(3)              get next character or word from input stream
           mktemp(3)            make temporary filename (unique)
           open_memstream(3)    open a dynamic memory buffer stream
           open_wmemstream(3)   open a dynamic memory buffer stream
           perror(3)            system error messages
           printf(3)            formatted output conversion
           putc(3)              output a character or word to a stream
           putchar(3)           output a character or word to a stream
           puts(3)              output a line to a stream
           putw(3)              output a character or word to a stream
           remove(3)            remove directory entry
           rewind(3)            reposition a stream
           scanf(3)             input format conversion
           setbuf(3)            stream buffering operations
           setbuffer(3)         stream buffering operations
           setlinebuf(3)        stream buffering operations
           setvbuf(3)           stream buffering operations
           sprintf(3)           formatted output conversion
           sscanf(3)            input format conversion
           strerror(3)          system error messages
           sys_errlist(3)       system error messages
           sys_nerr(3)          system error messages
           tempnam(3)           temporary file routines
           tmpfile(3)           temporary file routines
           tmpnam(3)            temporary file routines
           ungetc(3)            un-get character from input stream
           vfprintf(3)          formatted output conversion
           vfscanf(3)           input format conversion
           vprintf(3)           formatted output conversion
           vscanf(3)            input format conversion
           vsprintf(3)          formatted output conversion
           vsscanf(3)           input format conversion
    


## STANDARDS



           C11, POSIX.1-2008.
    


* * *