一般電腦在執行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..........。
沒有留言:
張貼留言