ANSI C标准库包含一些与流相关联的标准I/O函数和stdio.h头文件。stdio.h头文件定义了FILE类型、EOF和NULL的值、标准I/O流(stdin、stdout和stderr)以及标准I/O库函数要用到的一些常量。
| C标准I/O函数 | |
| 原型 | 描述 |
| void clearerr(FILE *) | 清除文件结尾和错误指示符 |
| int fclose(FILE *) | 关闭指定的文件 |
| int feof(FILE *) | 测试文件结尾 |
| int ferror(FILE *) | 测试错误指示符 |
| int fflush(FILE *) | 刷新指定的文件 |
| int fgetc(FILE *) | 获取指定输入流的下一个字符 |
| int fgetpos(FILE *restrict, restrict) | 储存文件位置指示符的fpos_t *当前值 |
| char * fgets(char *restrict, restrict) | 从指定流中获取下一行(或int、FILE *指定的字符数) |
| FILE * fopen(const char *restrict, const char * restrict) | 打开指定的文件 |
| int fprintf(FILE *restrict, const char *restrict, ...) | 把格式化输出写入指定流 |
| int fputc(int, FILE *) | 把指定字符写入指定流 |
| int fputs(const char * restrict, FILE * restrict) | 把第1个参数指向的字符串写入指定流 |
| size_t fread(void *restrict, size_t, size_t, FILE *restrict) | 读取指定流中的二进制数据 |
| FILE * freopen(const char * restrict, const char * restrict, FILE *restrict) | 打开指定文件,并将其与指定流相关联 |
| int fscanf(FILE *restrict, const char * restrict, ...) | 读取指定流中的格式化输入 |
| int fsetpos(FILE *, const fpos_t *) | 设置文件位置指针指向指定的值 |
| int fseek(FILE *, long, int) | 设置文件位置指针指向指定的值 |
| long ftell(FILE *) | 获取当前文件位置 |
| size_t fwrite(const void* restrict, size_t, size_t, FILE *restrict) | 把二进制数据写入指定流 |
| int getc(FILE *) | 读取指定输入的下一个字符 |
| int getchar() | 读取标准输入的下一个字符 |
| char * gets(char *) | 获取标准输入的下一行(C11库已删除) |
| void perror(const char *) | 把系统错误信息写入标准错误中 |
| int printf(const char *restrict, ...) | 把格式化输出写入标准输出中 |
| int putc(int, FILE *) | 把指定字符写入指定输出中 |
| int putchar(int) | 把指定字符写入标准输出中 |
| int puts(const char *) | 把字符串写入标准输出中 |
| int remove(const char *) | 移除已命名文件 |
| int rename(const char *, const char *) | 重命名文件 |
| void rewind(FILE *) | 设置文件位置指针指向文件开始处 |
| int scanf(const char *restrict, ...) | 读取标准输入中的格式化输入 |
| void setbuf(FILE *restrict, char *restrict) | 设置缓冲区大小和位置 |
| int setvbuf(FILE *restrict, char *restrict, int, size_t) | 设置缓冲区大小、位置和模式 |
| int snprintf(char *restrict, size_t n, const char * restrict, ...) | 把格式化输出中的前n个字符写入指定字符串中 |
| int sprintf(char *restrict, const char *restrict, ...) | 把格式化输出写入指定字符串中 |
| int sscanf(const char *restrict, const char *restrict, ...) | 把格式化输入写入指定字符串中 |
| FILE * tmpfile(void) | 创建一个临时文件 |
| char * tmpnam(char *) | 为临时文件生成一个唯一的文件名 |
| int ungetc(int, FILE *) | 把指定字符放回输入流中 |
| int vfprintf(FILE *restrict, const char *restrict, va_list) |
与fprintf()类似,但该函数用一个va_list类型形参列表(由va_start初始化)代替变量参数列表 |
| int vprintf(const char *restrict, va_list) |
与printf()类似,但该函数用一个va_list类型形参列表(由va_start初始化)代替变量参数列表 |
| int vsnprintf(char *restrict, size_t n, const char *restrict, va_list) |
与snprintf()类似,但该函数用一个va_list类型形参列表(由va_start初始化)代替变量参数列表 |
| int vsprintf(char *restrict, const char *restrict, va_list) |
与sprintf()类似,但该函数用一个va_list类型形参列表(由va_start初始化)代替变量参数列表 |
| int vscanf(const char *restrict, va_list) | 与scanf()类似,但该函数用一个va_list类型形参列表(由va_start初始化)代替变量参数列表 |
| int vsscanf(const char *restrict, * restrict, va_list) | 与sscanf()类似,但该函数用一个va_list类型形参列表(由va_start初始化)代替变量参数列表 |