在同步调用中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参数有什么用啊?
...全文
386 3 打赏 收藏 举报
写回复
3 条回复
切换为时间正序
当前发帖距今超过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来得知成功读取的数据长度
  • 打赏
  • 举报
回复
发帖
硬件/系统

2615

社区成员

VC/MFC 硬件/系统
社区管理员
  • 硬件/系统社区
加入社区
帖子事件
创建了帖子
2009-08-18 04:28
社区公告
暂无公告