繁体   English   中英

ReadFile()返回1,“ lpNumberOfBytesRead”设置为0

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM