C語言(用的是turboc2.0)中,對硬盤寫數據(比如說用fputs)時,先把數據裝入內存緩沖區中,待緩沖區滿了再寫到硬盤上。我的問題是:有沒有什么函數或標志可以測試內存緩沖區滿了沒有?(我問這個問題是因為我在編一個程序,其中,要把很大一個文件寫到硬盤上,估計緩沖區里一次裝不下。這樣,我就把fputs寫在了for循環里。可是,對硬盤寫東西較內存里操作要慢呀。于是,我就想到了用delay。這樣,我就要知道什么時候緩沖區滿了。等滿了就可以用delay了。)
1 回答

慕哥6287543
TA貢獻1831條經驗 獲得超10個贊
現代計算機都用虛擬存儲,輸出緩沖區應會自己調節,只要你的變量內存空間分配沒問題,輸出緩沖應沒問題.
就fputs來說,你可能已用fgets(或別的方法)得到了這個長string,肯定有個地方存這個string.
例如:
FILE *fin, *fout;
char *buff;
int NN;
buff = (char *) malloc(NN * sizeof(char));
fin = fopen(..); fout = fopen(....);
fgets (buff,NN,fin);
fputs (buff,fout);
如果你在分配buff時沒問題,則輸出也沒問題.
buff分配有無問題檢測是:
if ( !buff) {
printf("No enough memory for buff\n"); exit(1);
}
- 1 回答
- 0 關注
- 170 瀏覽
添加回答
舉報
0/150
提交
取消