在同步调用中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参数有什么用啊?
...全文
253 点赞 收藏 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来得知成功读取的数据长度
回复
发动态
发帖子
硬件/系统
创建于2007-09-28

2590

社区成员

VC/MFC 硬件/系统
申请成为版主
社区公告
暂无公告