File input/output
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/O
argument to setvbuf indicating line buffered I/O argument to setvbuf indicating unbuffered I/O (macro constant) |
SEEK_SET
SEEK_CUR
SEEK_END
|
argument to
fseek
indicating seeking from beginning of the file
argument to fseek indicating seeking from the current file position argument to fseek indicating seeking from end of the file (macro constant) |
TMP_MAX
TMP_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_tmpnam
L_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
- 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
|