当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


C语言 fflush用法及代码示例


C语言stdio头文件(stdio.h)中fflush函数的用法及代码示例。

用法:

int fflush ( FILE * stream );
冲洗流
如果给定已打开以进行写入(或者如果已打开以进行更新并且最后的I /O操作是输出操作),则其输出缓冲区中的所有未写入数据都将写入文件。

如果是一个空指针,所有此类流均被刷新。

在所有其他情况下,行为取决于特定的库实现。在某些实现中,刷新打开的流以进行读取会导致其输入缓冲区被清除(但这不是可移植的预期行为)。

此调用后,流保持打开状态。

关闭文件时,可能是由于调用了fclose或者因为程序终止,与它关联的所有缓冲区都将自动刷新。

参数

stream
指向一个指针FILE指定缓冲流的对象。

返回值

零值表示成功。
如果发生错误,EOF返回并设置了错误指示符(请参见ferror)。

示例

在为更新而打开的文件(即,为读取和写入而打开的文件)中,在执行输入操作之前,应在输出操作之后对流进行刷新。可以通过重新定位(fseekfsetposrewind)或通过显式调用fflush,例如本例所示:

/* fflush example */
#include <stdio.h>
char mybuffer[80];
int main()
{
   FILE * pFile;
   pFile = fopen ("example.txt","r+");
   if (pFile == NULL) perror ("Error opening file");
   else {
     fputs ("test",pFile);
     fflush (pFile);    // flushing or repositioning required
     fgets (mybuffer,80,pFile);
     puts (mybuffer);
     fclose (pFile);
     return 0;
  }
}


相关用法


注:本文由纯净天空筛选整理自C标准库大神的英文原创作品 C fflush function。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。