假設我有1Mb文件,文件指針位於文件的開頭。我稱之爲同步ReadFile:通過同步ReadFile讀取的字節數
ReadFile(Handle, Buffer, 1024, Result, nil);
該調用成功,沒有發生錯誤。 Result值(讀取的字節數)是否可能小於1024(要讀取的字節數)?
我認爲這是不可能的磁盤文件,我不確定其他資源可以通過ReadFile訪問。我應該在編寫可以使用不同資源的通用代碼時考慮上述情況嗎?
爲了避免哲學推測我可以重新配製的問題如下:
同步ReadFile的沒有錯誤被執行,並且字節數讀小於數目的閱讀。我可以確定已達到EOF嗎?
如何保證文件大於緩衝區當你打電話給ReadFile的時候,你正在嘗試閱讀?這是一個理論問題嗎?因爲我無法在現實世界中保證它。我會寫我的代碼來說明它返回的時間少於1024,並且有適當的錯誤處理(EOF)。 – 2010-07-27 11:20:45
@LarsTruijens,實際上是一個文件(不是管道等):1)調用GetFileSizeEx並分配一個由該函數報告的大小的緩衝區2)調用ReadFile請求一次讀取整個緩衝區3)程序員是否可以依賴ReadFile不會讀取報告讀取字節數的較小塊。 – 2015-06-26 13:26:21