fflush( )

一般電腦在執行IO的時候都會先將資料存在buffer裡面

等到system有空的時候才會讓資料寫入硬碟裡。因此我們要確保資料已經寫入

這時候就可以用fflush這個function。

以下是在論壇找到別人回覆的資料:

flush(stdin)刷新標準輸入緩衝區,把輸入緩衝區裡的東西丟棄  
fflush(stdout)刷新標準輸出緩衝區,把輸出緩衝區裡的東西打印到標準輸出設備上。

 

Example:

取自:http://www.cplusplus.com/reference/clibrary/cstdio/fflush/

/* fflush example */
#include 
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;
  }
}
 
在linux上可以下sync這個指令。讓他將"記憶體"的內容寫入"硬碟"。
並不是IO的buffer..........。

 

沒有留言:

張貼留言