C 库函数 - fflush()
描述
C 库函数 int fflush(FILE *stream) 用于刷新输出缓冲区。
fflush() 是 C 标准库中的一个函数,它将缓冲区中的数据立即写入到与流关联的文件或设备中。
对于输入流,它的行为是未定义的,应该避免在输入流上调用该函数。
声明
下面是 fflush() 函数的声明。
int fflush(FILE *stream)
参数
stream -- 指向 FILE 类型的指针,表示需要刷新缓冲区的目标流。FILE 是一个结构体,表示打开的文件流。
- 如果
stream
为NULL
,则会刷新所有输出流的缓冲区。 - 如果
stream
是文件指针,则刷新该文件流的输出缓冲区。
- 如果
返回值
如果成功刷新缓冲区,
fflush()
返回 0。如果发生错误,返回
EOF
,并且设置错误标识符(ferror
)。
实例
下面的实例演示了 fflush() 函数的用法。
实例
#include <stdio.h>
int main() {
FILE *fp;
char *filename = "example.txt";
char *data = "Hello, World!";
// 打开文件用于写入
fp = fopen(filename, "w");
if (fp == NULL) {
printf("无法打开文件 %s\n", filename);
return 1;
}
// 写入数据到文件
fprintf(fp, "%s", data);
// 刷新缓冲区,确保数据写入文件
if (fflush(fp) == 0) {
printf("数据成功写入文件。\n");
} else {
printf("刷新缓冲区时发生错误。\n");
}
// 关闭文件
fclose(fp);
return 0;
}
代码说明:
打开文件: 使用
fopen()
打开一个名为example.txt
的文件用于写入。写入数据: 使用
fprintf()
将字符串"Hello, World!"
写入文件。刷新缓冲区: 调用
fflush(fp)
确保数据立即写入文件,而不是留在缓冲区中。检查返回值: 如果
fflush()
返回 0,表示成功刷新缓冲区;否则,表示发生错误。关闭文件: 使用
fclose()
关闭文件。
数据成功写入文件。
程序打开文件 example.txt 并写入字符串 "Hello, World!"。
fflush(fp) 成功刷新缓冲区,返回 0,因此打印 "数据成功写入文件。"。
文件 example.txt 的内容将是:
Hello, World!