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>
FILE
object type, capable of holding all information needed to control a C I/O stream
(typedef)
fpos_t
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>
stdinstdoutstderr
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>
fopenfopen_s
(C11)
opens a file
(function)
freopenfreopen_s
(C11)
open an existing stream with a different name
(function)
fclose
closes a file
(function)
fflush
synchronizes an output stream with the actual file
(function)
setbuf
sets the buffer for a file stream
(function)
setvbuf
sets the buffer and its size for a file stream
(function)
Defined in header <wchar.h>
fwide
(C95)
switches a file stream between wide character I/O and narrow character I/O
(function)
Direct input/output
Defined in header <stdio.h>
fread
reads from a file
(function)
fwrite
writes to a file
(function)
Unformatted input/output
Narrow character
Defined in header <stdio.h>
fgetcgetc
gets a character from a file stream
(function)
fgets
gets a character string from a file stream
(function)
fputcputc
writes a character to a file stream
(function)
fputs
writes a character string to a file stream
(function)
getchar
reads a character from stdin
(function)
getsgets_s
(removed in C11)(C11)
reads a character string from stdin
(function)
putchar
writes a character to stdout
(function)
puts
writes a character string to stdout
(function)
ungetc
puts a character back into a file stream
(function)
Wide character
Defined in header <wchar.h>
fgetwcgetwc
(C95)
gets a wide character from a file stream
(function)
fgetws
(C95)
gets a wide string from a file stream
(function)
fputwcputwc
(C95)
writes a wide character to a file stream
(function)
fputws
(C95)
writes a wide string to a file stream
(function)
getwchar
(C95)
reads a wide character from stdin
(function)
putwchar
(C95)
writes a wide character to stdout
(function)
ungetwc
(C95)
puts a wide character back into a file stream
(function)
Formatted input/output
Narrow character
Defined in header <stdio.h>
scanffscanfsscanfscanf_sfscanf_ssscanf_s
(C11)(C11)(C11)
reads formatted input from stdin, a file stream or a buffer
(function)
vscanfvfscanfvsscanfvscanf_svfscanf_svsscanf_s
(C99)(C99)(C99)(C11)(C11)(C11)
reads formatted input from stdin, a file stream or a buffer
using variable argument list
(function)
printffprintfsprintfsnprintfprintf_sfprintf_ssprintf_ssnprintf_s
(C99)(C11)(C11)(C11)(C11)
prints formatted output to stdout, a file stream or a buffer
(function)
vprintfvfprintfvsprintfvsnprintfvprintf_svfprintf_svsprintf_svsnprintf_s
(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>
wscanffwscanfswscanfwscanf_sfwscanf_sswscanf_s
(C95)(C95)(C95)(C11)(C11)(C11)
reads formatted wide character input from stdin, a file stream or a buffer
(function)
vwscanfvfwscanfvswscanfvwscanf_svfwscanf_svswscanf_s
(C99)(C99)(C99)(C11)(C11)(C11)
reads formatted wide character input from stdin, a file stream
or a buffer using variable argument list
(function)
wprintffwprintfswprintfwprintf_sfwprintf_sswprintf_ssnwprintf_s
(C95)(C95)(C95)(C11)(C11)(C11)(C11)
prints formatted wide character output to stdout, a file stream or a buffer
(function)
vwprintfvfwprintfvswprintfvwprintf_svfwprintf_svswprintf_svsnwprintf_s
(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>
ftell
returns the current file position indicator
(function)
fgetpos
gets the file position indicator
(function)
fseek
moves the file position indicator to a specific location in a file
(function)
fsetpos
moves the file position indicator to a specific location in a file
(function)
rewind
moves the file position indicator to the beginning in a file
(function)
Error handling
Defined in header <stdio.h>
clearerr
clears errors
(function)
feof
checks for the end-of-file
(function)
ferror
checks for a file error
(function)
perror
displays a character string corresponding of the current error to stderr
(function)
Operations on files
Defined in header <stdio.h>
remove
erases a file
(function)
rename
renames a file
(function)
tmpfiletmpfile_s
(C11)
returns a pointer to a temporary file
(function)
tmpnamtmpnam_s
(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_SETSEEK_CURSEEK_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_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

See also

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

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/c/io