[問題] 如何設定字元流之緩衝區大小
想請問各位先進的是,在C++裡有沒有可以設定/控制字元流緩衝區的函式,
舉例來說,一程式如下:
#include <stdio.h>
#include <windows.h>
int main()
{
FILE *fp=fopen("D:\\aaa.txt", "w+");
for(int i=0;i<10000;i++)
{
fprintf(fp, "buffer test\n");
Sleep(50); //怕程式執行太快用Sleep拖點時間
}
fclose(fp);
return 0;
}
若在程式執行同時以UltraEdit或TextPad等文字編輯軟體開啟,
會觀察到"buffer test"這字串會被程式一直flush出來.
想請問的就是:
有沒有方法自行控制這個字元流的緩衝區,
先讓這10000筆字串資料都先存在緩衝區(記憶體),
等到關檔前再一次將10000筆資料flush至檔案(磁碟).
因為看到許多程式似乎都具備有這樣的功能,
能想到的好處是,若在程式執行中檔案不小心被刪除/修改,
則會因為資料都存在記憶體裡而不受到影響,
故想討論此做法如何實現,
以上或有錯誤或不合理處還請各位不吝指教.
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 60.248.180.253
→
11/02 15:20, , 1F
11/02 15:20, 1F
→
11/02 15:20, , 2F
11/02 15:20, 2F
→
11/02 15:28, , 3F
11/02 15:28, 3F
推
11/02 15:51, , 4F
11/02 15:51, 4F
→
11/02 16:15, , 5F
11/02 16:15, 5F
→
11/02 16:15, , 6F
11/02 16:15, 6F
→
11/02 16:16, , 7F
11/02 16:16, 7F
→
11/02 16:16, , 8F
11/02 16:16, 8F
→
11/02 16:17, , 9F
11/02 16:17, 9F
→
11/02 18:26, , 10F
11/02 18:26, 10F