##### cppreference.com

##### Search

Create account

##### Namespaces

- Page
- Discussion

##### Variants

##### Views

- View
- Edit
- History

##### Actions

# 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.

### [edit] Functions

##### File access
fopen | opens a file (function) [edit]
freopen | 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]
fwide | switches a file stream between wide character I/O and narrow character I/O (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]
##### Direct input/output
fread | reads from a file (function) [edit]
fwrite | writes to a file (function) [edit]
##### Unformatted input/output
##### Narrow character
fgetc getc | gets a character from a file stream (function) [edit]
fgets | gets a character string from a file stream (function) [edit]
fputc putc | 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]
gets (until 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
fgetwc getwc | gets a wide character from a file stream (function) [edit]
fgetws | gets a wide string from a file stream (function) [edit]
fputwc putwc | writes a wide character to a file stream (function) [edit]
fputws | writes a wide string to a file stream (function) [edit]
getwchar | reads a wide character from `stdin` (function) [edit]
putwchar | writes a wide character to stdout (function) [edit]
ungetwc | puts a wide character back into a file stream (function) [edit]
##### Formatted input/output
##### Narrow character
scanf fscanf sscanf | reads formatted input from stdin, a file stream or a buffer (function) [edit]
vscanf vfscanf vsscanf (C99)(C99)(C99) | reads formatted input from stdin, a file stream or a buffer using variable argument list (function) [edit]
printf fprintf sprintf snprintf (C99) | prints formatted output to stdout, a file stream or a buffer (function) [edit]
vprintf vfprintf vsprintf vsnprintf (C99) | prints formatted output to stdout, a file stream or a buffer using variable argument list (function) [edit]
##### Wide character
wscanf fwscanf swscanf | reads formatted wide character input from stdin, a file stream or a buffer (function) [edit]
vwscanf vfwscanf vswscanf (C99)(C99)(C99) | reads formatted wide character input from stdin, a file stream or a buffer using variable argument list (function) [edit]
wprintf fwprintf swprintf | prints formatted wide character output to stdout, a file stream or a buffer (function) [edit]
vwprintf vfwprintf vswprintf | prints formatted wide character output to stdout, a file stream or a buffer using variable argument list (function) [edit]
##### File positioning
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
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
remove | erases a file (function) [edit]
rename | renames a file (function) [edit]
tmpfile | returns a pointer to a temporary file (function) [edit]
tmpnam | returns a unique filename (function) [edit]

### [edit] Types

Defined in header `<stdio.h>`
Type | Definition
FILE | type, capable of holding all information needed to control a C I/O stream
fpos_t | type, capable of uniquely specifying a position in a file

### [edit] Macros

Defined in header `<stdio.h>`
stdin stdout stderr | 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)
EOF | integer constant expression of type int and negative value (macro constant)
FOPEN_MAX | 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 | maximum number of unique filenames that can be generated by tmpnam() (macro constant)
L_tmpnam | size needed for an array of char to hold the result of tmpnam() (macro constant)

### [edit] See also

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

Retrieved from "http://en.cppreference.com/mwiki/index.php?title=c/io&oldid=71030"