為什么后面的數據讀取會失敗呢?
3 回答

守著一只汪
TA貢獻1872條經驗 獲得超4個贊
fread是用來讀取文件的函數,其形式為
size_t fread ( void *buffer, size_t size, size_t count, FILE *file) ;
功能為從文件指針file中,每次讀取size長度數據,讀取count次,并將結果存到buffer中。
其出錯的可能原因包括:
1 文件沒有打開,或打開失敗。即文件指針非法。當文件不存在,或用戶對文件沒有讀權限,目標文件被占用等情況下,打開文件會失敗,這時file指針值為NULL。
2 文件打開時,并沒有指定讀屬性。
3 文件IO錯誤。如在文件打開后,文件被其它程序強制刪除,或取消可讀屬性等。
4 文件達到文件尾。如果文件已經讀到文件尾,不存在size*count字節的可讀數據,fread會出錯。
5 傳入的buffer非法。如buffer為空,或buffer擁有的空間不足以存儲size*count字節的數據,導致越界訪問。
以上即為常見的fread讀操作出錯的原因。實際出錯的時候,需要結合現象及代碼綜合分析才能得到準確的結果。
- 3 回答
- 0 關注
- 2675 瀏覽
添加回答
舉報
0/150
提交
取消