- 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.
广告