我正在学习有关 win32 编程的知识。我阅读了参考手册(此处:https ://msdn.microsoft.com/en-us/library/windows/desktop/aa365467%28v=vs.85%29.aspx )
如果 lpOverlapped 不为 NULL,则读取操作从 OVERLAPPED 结构中指定的偏移量开始,并且 ReadFile 在读取操作完成之前不会返回。系统会在 ReadFile 返回之前更新 OVERLAPPED 偏移量。
但是,如果我打电话ReadFile(hmyFile, &myrecord, sizeof(record_t), &n, &ov);
,我会看到该值ov.offset
保持不变。怎么会这样?我在哪里误解了参考手册中的内容?
更多详细信息:
文件处理程序在hmyFile = CreateFile(argv[1], GENERIC_READ|GENERIC_WRITE, FILE_SHARE_READ|FILE_SHARE_WRITE, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
我不使用时打开FILE_FLAG_OVERLAPPED