[英]ReadFile() returning 1 with “lpNumberOfBytesRead” set to 0
我正在使用VC ++函数
ReadFile(FileHandle,charBuf,noOfBytesToRead,&noOfBytesRead,NULL);
在for循环中; 在foor循环的每次迭代中,FileHandle在文件中向前移动,即,在每次迭代中,我们正在读取文件的特定单元,并将该单元(文件中的数据束)复制文件中的数据到char *
array。
每次迭代中要读取的数据量(从文件到char *
数组)由“ noOfBytesToRead”确定。
对于某些迭代:ReadFile()工作正常,但我观察到对于某些“第n次”迭代(在读取第n串数据时),即使ReadFile(),上述调用中的第4个参数( noOfBytesRead )也设置为0。 )传回1。
ReadFile()的返回值为1,表示成功,第4个参数“ noOfBytesRead”设置为0,而不是读取字节数:no。 这是矛盾的! 为什么会这样呢?
任何人都可以在这方面帮助我。 ReadFile()是Win API,我什至无法进入代码进行进一步调试。
从MSDN :
如果返回值非零且读取的字节数为零,则在读取操作时文件指针超出了文件的当前末尾。
从MSDN手册页 :
当同步读取操作到达文件末尾时,ReadFile返回TRUE,并将* lpNumberOfBytesRead设置为零。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.