Namespaces
Variants

File input/output

From cppreference.com
< c
 
 
File input/output
Types and objects
        
Functions
File access
(C95)
Unformatted input/output
(C95)(C95)
(C95)
(C95)(C95)
(C95)
(C95)

Formatted input
 

The <stdio.h> header provides generic file operation support and supplies functions with narrow character input/output capabilities.

The <wchar.h> header supplies functions with wide character input/output capabilities.

I/O streams are denoted by objects of type FILE that can only be accessed and manipulated through pointers of type FILE*. Each stream is associated with an external physical device (file, standard input stream, printer, serial port, etc).

Types

Defined in header <stdio.h>
object type, capable of holding all information needed to control a C I/O stream
(typedef) [edit]
non-array complete object type, capable of uniquely specifying a position and multibyte parser state in a file
(typedef) [edit]

Predefined standard streams

Defined in header <stdio.h>
expression of type FILE* associated with the input stream
expression of type FILE* associated with the output stream
expression of type FILE* associated with the error output stream
(macro constant) [edit]

Functions

File access
Defined in header <stdio.h>
opens a file
(function) [edit]
open an existing stream with a different name
(function) [edit]
closes a file
(function) [edit]
synchronizes an output stream with the actual file
(function) [edit]
sets the buffer for a file stream
(function) [edit]
sets the buffer and its size for a file stream
(function) [edit]
Defined in header <wchar.h>
(C95)
switches a file stream between wide character I/O and narrow character I/O
(function) [edit]
Direct input/output
Defined in header <stdio.h>
reads from a file
(function) [edit]
writes to a file
(function) [edit]
Unformatted input/output
Narrow character
Defined in header <stdio.h>
gets a character from a file stream
(function) [edit]
gets a character string from a file stream
(function) [edit]
writes a character to a file stream
(function) [edit]
writes a character string to a file stream
(function) [edit]
reads a character from stdin
(function) [edit]
(removed in C11)(C11)
reads a character string from stdin
(function) [edit]
writes a character to stdout
(function) [edit]
writes a character string to stdout
(function) [edit]
puts a character back into a file stream
(function) [edit]
Wide character
Defined in header <wchar.h>
gets a wide character from a file stream
(function) [edit]
(C95)
gets a wide string from a file stream
(function) [edit]
writes a wide character to a file stream
(function) [edit]
(C95)
writes a wide string to a file stream
(function) [edit]
reads a wide character from stdin
(function) [edit]
writes a wide character to stdout
(function) [edit]
puts a wide character back into a file stream
(function) [edit]
Formatted input/output
Narrow character
Defined in header <stdio.h>
reads formatted input from stdin, a file stream or a buffer
(function) [edit]
reads formatted input from stdin, a file stream or a buffer
using variable argument list
(function) [edit]
prints formatted output to stdout, a file stream or a buffer
(function) [edit]
prints formatted output to stdout, a file stream or a buffer
using variable argument list
(function) [edit]
Wide character
Defined in header <wchar.h>
reads formatted wide character input from stdin, a file stream or a buffer
(function) [edit]
reads formatted wide character input from stdin, a file stream
or a buffer using variable argument list
(function) [edit]
prints formatted wide character output to stdout, a file stream or a buffer
(function) [edit]
prints formatted wide character output to stdout, a file stream
or a buffer using variable argument list
(function) [edit]
File positioning
Defined in header <stdio.h>
returns the current file position indicator
(function) [edit]
gets the file position indicator
(function) [edit]
moves the file position indicator to a specific location in a file
(function) [edit]
moves the file position indicator to a specific location in a file
(function) [edit]
moves the file position indicator to the beginning in a file
(function) [edit]
Error handling
Defined in header <stdio.h>
clears errors
(function) [edit]
checks for the end-of-file
(function) [edit]
checks for a file error
(function) [edit]
displays a character string corresponding of the current error to stderr
(function) [edit]
Operations on files
Defined in header <stdio.h>
erases a file
(function) [edit]
renames a file
(function) [edit]
returns a pointer to a temporary file
(function) [edit]
returns a unique filename
(function) [edit]

Macro constants

Defined in header <stdio.h>
EOF
integer constant expression of type int and negative value
(macro constant)
FOPEN_MAX
maximum number of files that can be open simultaneously
(macro constant)
FILENAME_MAX
size needed for an array of char to hold the longest supported file name
(macro constant)
_PRINTF_NAN_LEN_MAX
(C23)
the maximum number of characters output for any (possibly negated) NaN value
(macro constant)
BUFSIZ
size of the buffer used by setbuf
(macro constant)
_IOFBF_IOLBF_IONBF
indicates the buffering mode (fully buffered / line buffered / unbuffered) to be set by setvbuf
(macro constant)
SEEK_SETSEEK_CURSEEK_END
indicates the offset origin (beginning / current position / end) to be used by fseek
(macro constant)
TMP_MAXTMP_MAX_S
(C11)
maximum number of unique filenames that can be generated by tmpnam / tmpnam_s
(macro constant)
L_tmpnamL_tmpnam_s
(C11)
size needed for an array of char to hold the result of tmpnam / tmpnam_s
(macro constant)

References

  • C23 standard (ISO/IEC 9899:2024):
  • 7.21 Input/output <stdio.h> (p: TBD)
  • 7.29 Extended multibyte and wide character utilities <wchar.h> (p: TBD)
  • 7.31.11 Input/output <stdio.h> (p: TBD)
  • 7.31.16 Extended multibyte and wide character utilities <wchar.h> (p: TBD)
  • K.3.5 Input/output <stdio.h> (p: TBD)
  • C17 standard (ISO/IEC 9899:2018):
  • 7.21 Input/output <stdio.h> (p: TBD)
  • 7.29 Extended multibyte and wide character utilities <wchar.h> (p: TBD)
  • 7.31.11 Input/output <stdio.h> (p: TBD)
  • 7.31.16 Extended multibyte and wide character utilities <wchar.h> (p: TBD)
  • K.3.5 Input/output <stdio.h> (p: TBD)
  • C11 standard (ISO/IEC 9899:2011):
  • 7.21 Input/output <stdio.h> (p: 296-339)
  • 7.29 Extended multibyte and wide character utilities <wchar.h> (p: 402-446)
  • 7.31.11 Input/output <stdio.h> (p: 456)
  • 7.31.16 Extended multibyte and wide character utilities <wchar.h> (p: 456)
  • K.3.5 Input/output <stdio.h> (p: 586-603)
  • C99 standard (ISO/IEC 9899:1999):
  • 7.19 Input/output <stdio.h> (p: 262-305)
  • 7.24 Extended multibyte and wide character utilities <wchar.h> (p: 348-392)
  • 7.26.9 Input/output <stdio.h> (p: 402)
  • 7.26.12 Extended multibyte and wide character utilities <wchar.h> (p: 402)
  • C89/C90 standard (ISO/IEC 9899:1990):
  • 4.9 INPUT/OUTPUT <stdio.h>
  • 4.13.6 Input/output <stdio.h>

See also

C++ documentation for C-style file input/output