在同步调用中ReadFile中lpNumberOfBytesRead参数有用吗?

fffjjjhhh 2009-08-18 04:28:41
函数原型:
BOOL ReadFile(
HANDLE hFile, // handle to file
LPVOID lpBuffer, // data buffer
DWORD nNumberOfBytesToRead, // number of bytes to read
LPDWORD lpNumberOfBytesRead, // number of bytes read
LPOVERLAPPED lpOverlapped // overlapped buffer
);

我想读一个比较大的文件,每次调用完读函数ReadFile的时候用判断lpNumberOfBytesRead是否和nNumberOfBytesToRead
相等吗?换句话说,调用ReadFile时会出现lpNumberOfBytesRead和nNumberOfBytesToRead不相等的情况吗?在实际情况中,
我发现只要文件够长,ReadFile总会读完指定的长度。哪微软设计pNumberOfBytesRead参数有什么用啊?
...全文
470 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
shakeyou123 2009-08-20
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 hnoe 的回复:]
如果读到文件末尾的时候,可能剩余的数据lpNumberOfBytesRead已经比需要读的nNumberOfBytesToRead数据少了,所以要根据返回值确认访问是否成功,并且根据lpNumberOfBytesRead来得知成功读取的数据长度
[/Quote]
UP
shakeyou123 2009-08-20
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 hnoe 的回复:]
如果读到文件末尾的时候,可能剩余的数据lpNumberOfBytesRead已经比需要读的nNumberOfBytesToRead数据少了,所以要根据返回值确认访问是否成功,并且根据lpNumberOfBytesRead来得知成功读取的数据长度
[/Quote]
UP
hnoe 2009-08-19
  • 打赏
  • 举报
回复
如果读到文件末尾的时候,可能剩余的数据lpNumberOfBytesRead已经比需要读的nNumberOfBytesToRead数据少了,所以要根据返回值确认访问是否成功,并且根据lpNumberOfBytesRead来得知成功读取的数据长度

2,644

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 硬件/系统
社区管理员
  • 硬件/系统社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧