fwrite和fread有沒有大小限制? -开发者知识库

fwrite和fread有沒有大小限制? -开发者知识库,第1张

和這兩個函數搞了一下午,感覺它倆行為好詭異啊```
     int size = 1024*1024;
     fwrite(p,size,1,toWrite);
這句話運行完結果是隨機的``有時候創建出來的文件有1MB(對的),再從新運行就會變成0```size越小成功率就越大```還有fread每次讀入數據有沒有最大限制?為什么我讀好像size大一點有時間就讀不進來```就時候直接崩掉``最郁悶的是,不是每次都崩``都找不到問題```
     大家有遇到過這種情況么?求大蝦們幫忙解惑啊~~~~

25 个解决方案

#1


fwrite調用系統調用write來實現的

這些標准庫函數都是基於緩沖的,標准輸入輸出是全緩存的,而有些是基於半緩存的,具體不是很清楚了。

所謂緩存就是要分配一個空間來暫存數據,一量遇到fflush,exit,'\n'(unix下叫新行符)或緩存已滿就將

寫入目的地,所以這里會存在一個最佳緩沖區大小。你自己查一下這個最佳是多少。

最佳答案:

本文经用户投稿或网站收集转载,如有侵权请联系本站。

发表评论

0条回复