Stdio.h

stdio.h（，标准输入/输出头文件）是C语言为输入输出提供的标准库头文件，其前身是迈克·莱斯克20世纪70年代编写的“可移植输入输出程序库”。

C语言中的所有输入和输出都由抽象的字节流来完成，对文件的访问也通过关联的输入或输出流进行。这一模式随UNIX操作系统而普及，在现代操作系统和编程语言中仍被广泛应用。

头文件内容
类型
标识符说明size_t用于表示大小的数据类型FILE记录流的信息的数据结构fpos_t用于在文件中定位的数据类型
宏
标识符说明NULL空指针_IOFBF用于控制缓冲方式的参数_IOLBF_IONBFBUFSIZsetbuf函数使用的缓冲区大小EOF文件结尾标志FOPEN_MAX实现保证能够同时打开的文件数量FILENAME_MAX实现保证支持的最长文件名的字符数L_tmpnam存放tmpnam函数生成的临时文件名的char数组的大小SEEK_CUR用于控制文件定位方式的参数SEEK_ENDSEEK_SETTMP_MAX实现保证能生成的临时文件名个数

标准流
标识符说明stderr标准错误流stdin标准输入流stdout标准输出流
函数
类型函数原型文件操作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 fprintf(FILE * restrict stream, const char * restrict format, ...);int fscanf(FILE * restrict stream, const char * restrict format, ...);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);
相关库
C++引入了iostream进行输入输出，但仍保留了stdio.h的功能。

贝尔实验室开发了Sfio库，旨在弥补stdio.h在功能、速度和安全性上的不足。
参见
I/O
wchar.h
 参考文献 

外部链接
C语言输入/输出参考手册

Category:C标准库头文件
Category:输入/输出