File input/output - cppreference.com (original) (raw)
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).
Contents
[edit] Types
[edit] Predefined standard streams
[edit] Functions
File access | |
---|---|
Defined in header <stdio.h> | |
fopenfopen_s(C11) | opens a file (function) [edit] |
freopenfreopen_s(C11) | open an existing stream with a different name (function) [edit] |
fclose | closes a file (function) [edit] |
fflush | synchronizes an output stream with the actual file (function) [edit] |
setbuf | sets the buffer for a file stream (function) [edit] |
setvbuf | sets the buffer and its size for a file stream (function) [edit] |
Defined in header <wchar.h> | |
fwide(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> | |
fread | reads from a file (function) [edit] |
fwrite | writes to a file (function) [edit] |
Unformatted input/output | |
Narrow character | |
Defined in header <stdio.h> | |
fgetcgetc | gets a character from a file stream (function) [edit] |
fgets | gets a character string from a file stream (function) [edit] |
fputcputc | writes a character to a file stream (function) [edit] |
fputs | writes a character string to a file stream (function) [edit] |
getchar | reads a character from stdin (function) [edit] |
getsgets_s(removed in C11)(C11) | reads a character string from stdin (function) [edit] |
putchar | writes a character to stdout (function) [edit] |
puts | writes a character string to stdout (function) [edit] |
ungetc | puts a character back into a file stream (function) [edit] |
Wide character | |
Defined in header <wchar.h> | |
fgetwcgetwc(C95) | gets a wide character from a file stream (function) [edit] |
fgetws(C95) | gets a wide string from a file stream (function) [edit] |
fputwcputwc(C95) | writes a wide character to a file stream (function) [edit] |
fputws(C95) | writes a wide string to a file stream (function) [edit] |
getwchar(C95) | reads a wide character from stdin (function) [edit] |
putwchar(C95) | writes a wide character to stdout (function) [edit] |
ungetwc(C95) | puts a wide character back into a file stream (function) [edit] |
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) [edit] |
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) [edit] |
printffprintfsprintfsnprintfprintf_sfprintf_ssprintf_ssnprintf_s(C99)(C11)(C11)(C11)(C11) | prints formatted output to stdout, a file stream or a buffer (function) [edit] |
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) [edit] |
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) [edit] |
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) [edit] |
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) [edit] |
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) [edit] |
File positioning | |
Defined in header <stdio.h> | |
ftell | returns the current file position indicator (function) [edit] |
fgetpos | gets the file position indicator (function) [edit] |
fseek | moves the file position indicator to a specific location in a file (function) [edit] |
fsetpos | moves the file position indicator to a specific location in a file (function) [edit] |
rewind | moves the file position indicator to the beginning in a file (function) [edit] |
Error handling | |
Defined in header <stdio.h> | |
clearerr | clears errors (function) [edit] |
feof | checks for the end-of-file (function) [edit] |
ferror | checks for a file error (function) [edit] |
perror | displays a character string corresponding of the current error to stderr (function) [edit] |
Operations on files | |
Defined in header <stdio.h> | |
remove | erases a file (function) [edit] |
rename | renames a file (function) [edit] |
tmpfiletmpfile_s(C11) | returns a pointer to a temporary file (function) [edit] |
tmpnamtmpnam_s(C11) | returns a unique filename (function) [edit] |
[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) |
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 tmpnammaximum 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 tmpnamsize needed for an array of char to hold the result of tmpnam_s (macro constant) |
[edit] 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>