File input/output
From cppreference.com
< c
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) | |
non-array complete object type, capable of uniquely specifying a position and multibyte parser state in a file (typedef) |
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) |
Functions
File access | |
Defined in header
<stdio.h> | |
(C11) |
opens a file (function) |
(C11) |
open an existing stream with a different name (function) |
closes a file (function) | |
synchronizes an output stream with the actual file (function) | |
sets the buffer for a file stream (function) | |
sets the buffer and its size for a file stream (function) | |
Defined in header
<wchar.h> | |
(C95) |
switches a file stream between wide character I/O and narrow character I/O (function) |
Direct input/output | |
Defined in header
<stdio.h> | |
reads from a file (function) | |
writes to a file (function) | |
Unformatted input/output | |
Narrow character | |
Defined in header
<stdio.h> | |
gets a character from a file stream (function) | |
gets a character string from a file stream (function) | |
writes a character to a file stream (function) | |
writes a character string to a file stream (function) | |
reads a character from stdin (function) | |
(removed in C11)(C11) |
reads a character string from stdin (function) |
writes a character to stdout (function) | |
writes a character string to stdout (function) | |
puts a character back into a file stream (function) | |
Wide character | |
Defined in header
<wchar.h> | |
(C95) |
gets a wide character from a file stream (function) |
(C95) |
gets a wide string from a file stream (function) |
(C95) |
writes a wide character to a file stream (function) |
(C95) |
writes a wide string to a file stream (function) |
(C95) |
reads a wide character from stdin (function) |
(C95) |
writes a wide character to stdout (function) |
(C95) |
puts a wide character back into a file stream (function) |
Formatted input/output | |
Narrow character | |
Defined in header
<stdio.h> | |
(C11)(C11)(C11) |
reads formatted input from stdin, a file stream or a buffer (function) |
(C99)(C99)(C99)(C11)(C11)(C11) |
reads formatted input from stdin, a file stream or a buffer using variable argument list (function) |
(C99)(C11)(C11)(C11)(C11) |
prints formatted output to stdout, a file stream or a buffer (function) |
(C99)(C11)(C11)(C11)(C11) |
prints formatted output to stdout, a file stream or a buffer using variable argument list (function) |
Wide character | |
Defined in header
<wchar.h> | |
(C95)(C95)(C95)(C11)(C11)(C11) |
reads formatted wide character input from stdin, a file stream or a buffer (function) |
(C99)(C99)(C99)(C11)(C11)(C11) |
reads formatted wide character input from stdin, a file stream or a buffer using variable argument list (function) |
(C95)(C95)(C95)(C11)(C11)(C11)(C11) |
prints formatted wide character output to stdout, a file stream or a buffer (function) |
(C95)(C95)(C95)(C11)(C11)(C11)(C11) |
prints formatted wide character output to stdout, a file stream or a buffer using variable argument list (function) |
File positioning | |
Defined in header
<stdio.h> | |
returns the current file position indicator (function) | |
gets the file position indicator (function) | |
moves the file position indicator to a specific location in a file (function) | |
moves the file position indicator to a specific location in a file (function) | |
moves the file position indicator to the beginning in a file (function) | |
Error handling | |
Defined in header
<stdio.h> | |
clears errors (function) | |
checks for the end-of-file (function) | |
checks for a file error (function) | |
displays a character string corresponding of the current error to stderr (function) | |
Operations on files | |
Defined in header
<stdio.h> | |
erases a file (function) | |
renames a file (function) | |
(C11) |
returns a pointer to a temporary file (function) |
(C11) |
returns a unique filename (function) |
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) |
BUFSIZ |
size of the buffer used by setbuf() (macro constant) |
_IOFBF_IOLBF_IONBF |
argument to setvbuf() indicating fully buffered I/Oargument to setvbuf() indicating line buffered I/Oargument to setvbuf() indicating unbuffered I/O (macro constant) |
SEEK_SETSEEK_CURSEEK_END |
argument to fseek() indicating seeking from beginning of the fileargument to fseek() indicating seeking from the current file positionargument to fseek() indicating seeking from end of the file (macro constant) |
TMP_MAXTMP_MAX_S (C11) |
maximum number of unique filenames that can be generated by tmpnam maximum number of unique filenames that can be generated by tmpnam_s (macro constant) |
L_tmpnamL_tmpnam_s (C11) |
size needed for an array of char to hold the result of tmpnam size needed for an array of char to hold the result of tmpnam_s (macro constant) |
References
- 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>