第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

關(guān)于fread函數(shù),當(dāng)文件流緩沖中剩余長度小于需要讀取的長度時的問題 ?有知道的嗎?

關(guān)于fread函數(shù),當(dāng)文件流緩沖中剩余長度小于需要讀取的長度時的問題 ?有知道的嗎?

C PHP
翻翻過去那場雪 2021-10-21 21:15:42
當(dāng)輸入文件為二進(jìn)制,長度遠(yuǎn)大于4096的時候。由于文件流緩沖默認(rèn)為4095.那么假設(shè)已經(jīng)讀取了4080個字節(jié)之后,即fp_in->_cnt的值為15,再使用fread(g_buffer, 1, 20, fp_in);函數(shù)打算一次性讀出20個字節(jié)時,程序異常,fread執(zhí)行時報Access Violation.有高手幫忙解釋下嗎?按道理說,文件流緩沖中剩余長度不足的時候,應(yīng)該會自動從外存文件中一次性讀入4096個字節(jié)到緩沖中才對呀,有高手幫忙指點下嗎?
查看完整描述

2 回答

?
阿晨1998

TA貢獻(xiàn)2037條經(jīng)驗 獲得超6個贊

fread在fp_in緩沖區(qū)中剩余字節(jié)為0的時候才會產(chǎn)生一個異常讓內(nèi)核去處理,內(nèi)核收到這個異常,就會讀取文件,將fp_in的緩沖區(qū)重新填滿。
也就是說:如果只剩下15個了,你要讀20個,那么就會先讀15個到g_buffer里,然后產(chǎn)生一個異常,內(nèi)核重新填滿緩沖區(qū),然后再從緩沖區(qū)里讀5個字節(jié)。

查看完整回答
反對 回復(fù) 2021-10-24
?
揚帆大魚

TA貢獻(xiàn)1799條經(jīng)驗 獲得超9個贊

你一頓能吃四兩飯,你現(xiàn)在已經(jīng)吃了三兩了,現(xiàn)在又有四兩擺在你的面前,你不能一次把這四兩又吃下去的。
程序同理,fread函數(shù)的原型如下:
size_t fread(void *buffer, size_t size, size_t count, FILE *stream);
只能讀到等于buffer指向的內(nèi)存區(qū)的大小的count的。

查看完整回答
反對 回復(fù) 2021-10-24
  • 2 回答
  • 0 關(guān)注
  • 464 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號