當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。