假设我有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