@node Stdio
@chapter Input and Output (@file{stdio.h})

This chapter comprises functions to manage files
or other input/output streams. Among these functions are subroutines
to generate or scan strings according to specifications from a format string.

The underlying facilities for input and output depend on the host
system, but these functions provide a uniform interface.

The corresponding declarations are in @file{stdio.h}.

The reentrant versions of these functions use macros

@example
_stdin_r(@var{reent})
_stdout_r(@var{reent})
_stderr_r(@var{reent})
@end example

@noindent
instead of the globals @code{stdin}, @code{stdout}, and
@code{stderr}.  The argument @var{reent} is a pointer to a reentrancy
structure.

@menu
* Function clearerr::    Clear file or stream error indicator
* Function diprintf::    Print to a file descriptor (integer only)
* Function dprintf::     Print to a file descriptor
* Function fclose::      Close a file
* Function fcloseall::   Close all files
* Function fdopen::      Turn an open file into a stream
* Function feof::        Test for end of file
* Function ferror::      Test whether read/write error has occurred
* Function fflush::      Flush buffered file output
* Function fgetc::       Get a character from a file or stream
* Function fgetpos::     Record position in a stream or file
* Function fgets::       Get character string from a file or stream
* Function fgetwc::      Get a wide character from a file or stream
* Function fgetws::      Get a wide character string from a file or stream
* Function fileno::      Get file descriptor associated with stream
* Function fmemopen::    Open a stream around a fixed-length buffer
* Function fopen::       Open a file
* Function fopencookie:: Open a stream with custom callbacks
* Function fpurge::      Discard all pending I/O on a stream
* Function fputc::       Write a character on a stream or file
* Function fputs::       Write a character string in a file or stream
* Function fputwc::      Write a wide character to a file or stream
* Function fputws::      Write a wide character string to a file or stream
* Function fread::       Read array elements from a file
* Function freopen::     Open a file using an existing file descriptor
* Function fseek::       Set file position
* Function __fsetlocking::	Set or query locking mode on FILE stream
* Function fsetpos::     Restore position of a stream or file
* Function ftell::       Return position in a stream or file
* Function funopen::     Open a stream with custom callbacks
* Function fwide::       Set and determine the orientation of a FILE stream
* Function fwrite::      Write array elements from memory to a file or stream
* Function getc::        Get a character from a file or stream (macro)
* Function getc_unlocked::	Get a character from a file or stream (macro)
* Function getchar::     Get a character from standard input (macro)
* Function getchar_unlocked::	Get a character from standard input (macro)
* Function getdelim::    Get character string from a file or stream
* Function getline::     Get character string from a file or stream
* Function gets::        Get character string from standard input (obsolete)
* Function getw::        Get a word (int) from a file or stream
* Function getwchar::    Get a wide character from standard input
* Function mktemp::      Generate unused file name
* Function open_memstream::	Open a write stream around an arbitrary-length buffer
* Function perror::      Print an error message on standard error
* Function putc::        Write a character on a stream or file (macro)
* Function putc_unlocked::	Write a character on a stream or file (macro)
* Function putchar::     Write a character on standard output (macro)
* Function putchar_unlocked::	Write a character on standard output (macro)
* Function puts::        Write a character string on standard output
* Function putw::        Write a word (int) to a file or stream
* Function putwchar::    Write a wide character to standard output
* Function remove::      Delete a file's name
* Function rename::      Rename a file
* Function rewind::      Reinitialize a file or stream
* Function setbuf::      Specify full buffering for a file or stream
* Function setbuffer::   Specify full buffering for a file or stream with size
* Function setlinebuf::  Specify line buffering for a file or stream
* Function setvbuf::     Specify buffering for a file or stream
* Function siprintf::    Write formatted output (integer only)
* Function siscanf::     Scan and format input (integer only)
* Function sprintf::     Write formatted output
* Function sscanf::      Scan and format input
* Function stdio_ext::   Access internals of FILE structure
* Function swprintf::    Write formatted wide character output
* Function swscanf::     Scan and format wide character input
* Function tmpfile::     Create a temporary file
* Function tmpnam::      Generate name for a temporary file
* Function ungetc::      Push data back into a stream
* Function ungetwc::     Push wide character data back into a stream
* Function vfprintf::    Format variable argument list
* Function vfscanf::     Scan variable argument list
* Function vfwprintf::   Format variable wide character argument list
* Function vfwscanf::    Scan and format argument list from wide character input
* Function viprintf::    Format variable argument list (integer only)
* Function viscanf::     Scan variable format list (integer only)
@end menu

@page
@include stdio/clearerr.def

@page
@include stdio/diprintf.def

@page
@include stdio/dprintf.def

@page
@include stdio/fclose.def

@page
@include stdio/fcloseall.def

@page
@include stdio/fdopen.def

@page
@include stdio/feof.def

@page
@include stdio/ferror.def

@page
@include stdio/fflush.def

@page
@include stdio/fgetc.def

@page
@include stdio/fgetpos.def

@page
@include stdio/fgets.def

@page
@include stdio/fgetwc.def

@page
@include stdio/fgetws.def

@page
@include stdio/fileno.def

@page
@include stdio/fmemopen.def

@page
@include stdio/fopen.def

@page
@include stdio/fopencookie.def

@page
@include stdio/fpurge.def

@page
@include stdio/fputc.def

@page
@include stdio/fputs.def

@page
@include stdio/fputwc.def

@page
@include stdio/fputws.def

@page
@include stdio/fread.def

@page
@include stdio/freopen.def

@page
@include stdio/fseek.def

@page
@include stdio/fsetlocking.def

@page
@include stdio/fsetpos.def

@page
@include stdio/ftell.def

@page
@include stdio/funopen.def

@page
@include stdio/fwide.def

@page
@include stdio/fwrite.def

@page
@include stdio/getc.def

@page
@include stdio/getc_u.def

@page
@include stdio/getchar.def

@page
@include stdio/getchar_u.def

@page
@include stdio/getdelim.def

@page
@include stdio/getline.def

@page
@include stdio/gets.def

@page
@include stdio/getw.def

@page
@include stdio/getwchar.def

@page
@include stdio/mktemp.def

@page
@include stdio/open_memstream.def

@page
@include stdio/perror.def

@page
@include stdio/putc.def

@page
@include stdio/putc_u.def

@page
@include stdio/putchar.def

@page
@include stdio/putchar_u.def

@page
@include stdio/puts.def

@page
@include stdio/putw.def

@page
@include stdio/putwchar.def

@page
@include stdio/remove.def

@page
@include stdio/rename.def

@page
@include stdio/rewind.def

@page
@include stdio/setbuf.def

@page
@include stdio/setbuffer.def

@page
@include stdio/setlinebuf.def

@page
@include stdio/setvbuf.def

@page
@include stdio/siprintf.def

@page
@include stdio/siscanf.def

@page
@include stdio/sprintf.def

@page
@include stdio/sscanf.def

@page
@include stdio/stdio_ext.def

@page
@include stdio/swprintf.def

@page
@include stdio/swscanf.def

@page
@include stdio/tmpfile.def

@page
@include stdio/tmpnam.def

@page
@include stdio/ungetc.def

@page
@include stdio/ungetwc.def

@page
@include stdio/vfprintf.def

@page
@include stdio/vfscanf.def

@page
@include stdio/vfwprintf.def

@page
@include stdio/vfwscanf.def

@page
@include stdio/viprintf.def

@page
@include stdio/viscanf.def
