fflush()函数用于清除流,即清除文件缓冲区,当文件以写的方式打开时,将缓冲区内容写入文件。
fflush()函数 语法
int fflush(FILE*p);
参数p为要清除的文件流。
fflush()函数刷新成功时返回0;指定的流没有缓冲区域或只读打开时也返回0;否则,返回EOF指出一个错误。
fflush()函数 示例
本示例使用fflush函数将缓冲区的内容写入文件1.txt中,其具体代码如下所示:
#include<string.h>
#include<stdio.h>
#include<conio.h>
#include<io.h>
void flush(FILE*p);
int main(void)
{
FILE*p;
char s[]="Good luck to you!";
p=fopen("1.txt","w");/*创建文件*/
fwrite(s,strlen(s),1,p);/*向文件中写入一些字符*/
printf("Press any key to flush 1.txt:");
getch();
flush(p);/*清除流*/
printf(" File was flushed,Press any key to quit:");
getch();
return 0;
}
void flush(FILE*p)
{
int fhandle;
fflush(p);/*清除文件缓冲区*/
fhandle=dup(fileno(p));/*复制文件句柄*/
close(fhandle);/*关闭复制文件句柄*/
}
程序运行结果如图所示。