亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

C語言fread為什么會讀取失敗呢?

C語言fread為什么會讀取失敗呢?

SSM
烙印99 2019-02-14 15:11:30
為什么后面的數據讀取會失敗呢?   
查看完整描述

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讀操作出錯的原因。實際出錯的時候,需要結合現象及代碼綜合分析才能得到準確的結果。



查看完整回答
反對 回復 2019-03-26
  • 3 回答
  • 0 關注
  • 2675 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號