- C 标准库
- C 库 - 首页
- C 库 - <assert.h>
- C 库 - <complex.h>
- C 库 - <ctype.h>
- C 库 - <errno.h>
- C 库 - <fenv.h>
- C 库 - <float.h>
- C 库 - <inttypes.h>
- C 库 - <iso646.h>
- C 库 - <limits.h>
- C 库 - <locale.h>
- C 库 - <math.h>
- C 库 - <setjmp.h>
- C 库 - <signal.h>
- C 库 - <stdalign.h>
- C 库 - <stdarg.h>
- C 库 - <stdbool.h>
- C 库 - <stddef.h>
- C 库 - <stdio.h>
- C 库 - <stdlib.h>
- C 库 - <string.h>
- C 库 - <tgmath.h>
- C 库 - <time.h>
- C 库 - <wctype.h>
- C 标准库资源
- C 库 - 快速指南
- C 库 - 有用资源
- C 库 - 讨论
C 库 - fflush() 函数
C 库的 fflush() 函数用于刷新流的输出缓冲区。此函数强制将给定输出或更新流的所有缓冲数据写入文件。当应用于输入流时,其行为未定义。刷新流可确保将内存中缓冲的任何数据写入与流关联的文件或设备。
语法
以下是 C 库 fflush() 函数的语法:
int fflush(FILE *stream);
参数
- stream: 这是一个指向 FILE 对象的指针,用于指定要刷新的流。如果 stream 为 NULL,则 fflush 将刷新所有打开的输出流。
返回值
如果缓冲区成功刷新,fflush 函数返回 0,表示成功。如果发生错误,则返回 EOF,表示失败,并且流的错误指示器被设置。
示例 1:刷新输出流
此示例演示如何使用 fflush 来确保缓冲输出立即写入文件。
以下是 C 库 fflush() 函数的示例。
#include <stdio.h> int main() { FILE *file = fopen("example1.txt", "w"); if (file == NULL) { perror("Failed to open file"); return 1; } fprintf(file, "Hello, World!\n"); // Ensure "Hello, World!" is written to the file immediately fflush(file); fclose(file); return 0; }
输出
以上代码将“Hello, World!”写入文件,并使用 fflush 确保数据立即写入磁盘,而不是等到文件关闭。−
Hello, World!
示例 2:刷新所有打开的输出流
在本例中,我们将不同数据写入两个文件,并使用 fflush(NULL) 刷新所有打开的输出流,确保所有数据在关闭文件之前写入磁盘。
#include <stdio.h> int main() { FILE *file1 = fopen("example3_1.txt", "w"); FILE *file2 = fopen("example3_2.txt", "w"); if (file1 == NULL || file2 == NULL) { perror("Failed to open file"); return 1; } fprintf(file1, "Data for file 1.\n"); fprintf(file2, "Data for file 2.\n"); // Flush all open output streams fflush(NULL); fclose(file1); fclose(file2); return 0; }
输出
执行上述代码后,它将不同数据写入两个文件,并使用 fflush(NULL) 刷新所有打开的输出流,确保所有数据在关闭文件之前写入磁盘。−
Data for file 1. Data for file 2.
广告