作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
假设我有这样的东西
readFile(.....&ol) //with overlapped
while(1){
////////.....
waitforsingleobject(//ol.hevent);
////
readfile(.....&ol)
}
我注意到两个读取文件都从文件的开头读取...为什么?在没有重叠/异步的普通读取文件中,第二个读取文件将从第一个读取文件结束的地方开始..
最佳答案
在文件上使用重叠 I/O 时,您将指针传递给 OVERLAPPED
对象,在本例中为 ol
。
OVERLAPPED
结构有两个变量,Offset
和 OffsetHigh
。这两个变量组合成一个64位整数,Offset
为低位DWORD,OffsetHigh
为高位DWORD,作为偏移执行的 I/O 操作。
因此,例如,如果您想在文件的第 8 个字节开始一个 ReadFile
,您可以将 Offset
变量设置为 8,并将 在将
变量设置为 0。OVERLAPPED
传递给 ReadFile
之前将 OffsetHigh
关于c++ - 重叠/异步 I/O 如何工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5620656/
我是一名优秀的程序员,十分优秀!