Standard library header <stdio.h> - cppreference.com
From cppreference.com
This header is part of input/output library, providing generic file operation support and supplies I/O functions that work with narrow characters.
Types
| object type, capable of holding all information needed to control a C I/O stream (typedef) [edit] | |
| non-array complete object type, capable of uniquely specifying a position and multibyte parser state in a file (typedef) [edit] |
Predefined standard streams
expression of type FILE* associated with the input streamexpression of type FILE* associated with the output streamexpression of type FILE* associated with the error output stream (macro constant) [edit] |
Functions
File access | |
(C11) |
opens a file (function) [edit] |
(C11) |
open an existing stream with a different name (function) [edit] |
| closes a file (function) [edit] | |
| synchronizes an output stream with the actual file (function) [edit] | |
| sets the buffer for a file stream (function) [edit] | |
| sets the buffer and its size for a file stream (function) [edit] | |
Direct input/output | |
| reads from a file (function) [edit] | |
| writes to a file (function) [edit] | |
Unformatted input/output | |
Narrow character | |
| gets a character from a file stream (function) [edit] | |
| gets a character string from a file stream (function) [edit] | |
| writes a character to a file stream (function) [edit] | |
| writes a character string to a file stream (function) [edit] | |
| reads a character from stdin (function) [edit] | |
(removed in C11)(C11) |
reads a character string from stdin (function) [edit] |
| writes a character to stdout (function) [edit] | |
| writes a character string to stdout (function) [edit] | |
| puts a character back into a file stream (function) [edit] | |
Formatted input/output | |
Narrow character | |
(C11)(C11)(C11) |
reads formatted input from stdin, a file stream or a buffer (function) [edit] |
(C99)(C99)(C99)(C11)(C11)(C11) |
reads formatted input from stdin, a file stream or a buffer using variable argument list (function) [edit] |
(C99)(C11)(C11)(C11)(C11) |
prints formatted output to stdout, a file stream or a buffer (function) [edit] |
(C99)(C11)(C11)(C11)(C11) |
prints formatted output to stdout, a file stream or a buffer using variable argument list (function) [edit] |
File positioning | |
| returns the current file position indicator (function) [edit] | |
| gets the file position indicator (function) [edit] | |
| moves the file position indicator to a specific location in a file (function) [edit] | |
| moves the file position indicator to a specific location in a file (function) [edit] | |
| moves the file position indicator to the beginning in a file (function) [edit] | |
Error handling | |
| clears errors (function) [edit] | |
| checks for the end-of-file (function) [edit] | |
| checks for a file error (function) [edit] | |
| displays a character string corresponding of the current error to stderr (function) [edit] | |
Operations on files | |
| erases a file (function) [edit] | |
| renames a file (function) [edit] | |
(C11) |
returns a pointer to a temporary file (function) [edit] |
(C11) |
returns a unique filename (function) [edit] |
Macro constants
integer constant expression of type int and negative value (macro constant) | |
| maximum number of files that can be open simultaneously (macro constant) | |
size needed for an array of char to hold the longest supported file name (macro constant) |
| the maximum number of characters output for any (possibly negated) NaN value (macro constant) |
| size of the buffer used by setbuf (macro constant) | |
| indicates the buffering mode (fully buffered / line buffered / unbuffered) to be set by setvbuf (macro constant) | |
| indicates the offset origin (beginning / current position / end) to be used by fseek (macro constant) | |
| maximum number of unique filenames that can be generated by tmpnam / tmpnam_s (macro constant) | |
size needed for an array of char to hold the result of tmpnam / tmpnam_s (macro constant) |
Synopsis
#define __STDC_VERSION_STDIO_H__ 202311L typedef /* see description */ FILE; typedef /* see description */ size_t; typedef /* see description */ FILE; typedef /* see description */ fpos_t; #define NULL /* see description */ #define _IOFBF /* see description */ #define _IOLBF /* see description */ #define _IONBF /* see description */ #define BUFSIZ /* see description */ #define EOF /* see description */ #define FOPEN_MAX /* see description */ #define FILENAME_MAX /* see description */ #define L_tmpnam /* see description */ #define SEEK_CUR /* see description */ #define SEEK_END /* see description */ #define SEEK_SET /* see description */ #define TMP_MAX /* see description */ #define stdin /* see description */ #define stdout /* see description */ #define stderr /* see description */ #define _PRINTF_NAN_LEN_MAX /* see description */ int remove(const char* filename); int rename(const char* old, const char* new); FILE* tmpfile(void); char* tmpnam(char* s); int fclose(FILE* stream); int fflush(FILE* stream); FILE* fopen(const char* restrict filename, const char* restrict mode); FILE* freopen(const char* restrict filename, const char* restrict mode, FILE* restrict stream); void setbuf(FILE* restrict stream, char* restrict buf); int setvbuf(FILE* restrict stream, char* restrict buf, int mode, size_t size); int printf(const char* restrict format, ...); int scanf(const char* restrict format, ...); int snprintf(char* restrict s, size_t n, const char* restrict format, ...); int sprintf(char* restrict s, const char* restrict format, ...); int sscanf(const char* restrict s, const char* restrict format, ...); int vfprintf(FILE* restrict stream, const char* restrict format, va_list arg); int vfscanf(FILE* restrict stream, const char* restrict format, va_list arg); int vprintf(const char* restrict format, va_list arg); int vscanf(const char* restrict format, va_list arg); int vsnprintf(char* restrict s, size_t n, const char* restrict format, va_list arg); int vsprintf(char* restrict s, const char* restrict format, va_list arg); int vsscanf(const char* restrict s, const char* restrict format, va_list arg); int fgetc(FILE* stream); char* fgets(char* restrict s, int n, FILE* restrict stream); int fputc(int c, FILE* stream); int fputs(const char* restrict s, FILE* restrict stream); int getc(FILE* stream); int getchar(void); int putc(int c, FILE* stream); int putchar(int c); int puts(const char* s); int ungetc(int c, FILE* stream); size_t fread(void* restrict ptr, size_t size, size_t nmemb, FILE* restrict stream); size_t fwrite(const void* restrict ptr, size_t size, size_t nmemb, FILE* restrict stream); int fgetpos(FILE* restrict stream, fpos_t* restrict pos); int fseek(FILE* stream, long int offset, int whence); int fsetpos(FILE* stream, const fpos_t* pos); long int ftell(FILE* stream); void rewind(FILE* stream); void clearerr(FILE* stream); int feof(FILE* stream); int ferror(FILE* stream); void perror(const char* s); int fprintf(FILE* restrict stream, const char* restrict format, ...); int fscanf(FILE* restrict stream, const char* restrict format, ...);
Only if the implementation defines __STDC_LIB_EXT1__ and additionally the user
code defines __STDC_WANT_LIB_EXT1__ before any inclusion of <stdio.h>:
#if defined(__STDC_WANT_LIB_EXT1__) #define L_tmpnam_s /* see description */ #define TMP_MAX_S /* see description */ typedef /* see description */ errno_t; typedef /* see description */ rsize_t; errno_t tmpfile_s(FILE* restrict* restrict streamptr); errno_t tmpnam_s(char* s, rsize_t maxsize); errno_t fopen_s(FILE* restrict* restrict streamptr, const char* restrict filename, const char* restrict mode); errno_t freopen_s(FILE* restrict* restrict newstreamptr, const char* restrict filename, const char* restrict mode, FILE* restrict stream); int fprintf_s(FILE* restrict stream, const char* restrict format, ...); int fscanf_s(FILE* restrict stream, const char* restrict format, ...); int printf_s(const char* restrict format, ...); int scanf_s(const char* restrict format, ...); int snprintf_s(char* restrict s, rsize_t n, const char* restrict format, ...); int sprintf_s(char* restrict s, rsize_t n, const char* restrict format, ...); int sscanf_s(const char* restrict s, const char* restrict format, ...); int vfprintf_s(FILE* restrict stream, const char* restrict format, va_list arg); int vfscanf_s(FILE* restrict stream, const char* restrict format, va_list arg); int vprintf_s(const char* restrict format, va_list arg); int vscanf_s(const char* restrict format, va_list arg); int vsnprintf_s(char* restrict s, rsize_t n, const char* restrict format, va_list arg); int vsprintf_s(char* restrict s, rsize_t n, const char* restrict format, va_list arg); int vsscanf_s(const char* restrict s, const char* restrict format, va_list arg); char* gets_s(char* s, rsize_t n); #endif