我有两个句柄,它们是从同一文件创建的,
在这种情况下,我想使用第一个HANDLE在从1到100的偏移量上进行写操作,
使用第二个手柄从101到200,使用第一个手柄从201到300,
...,
如何使该操作看起来像是顺序写入并且没有浪费时间
在将指针放置在HANDLE之间?
最佳答案
您应该能够执行异步重叠的IO。
要开始,请查看WriteFile win32 API调用。它讨论了如何使用带有FLAG_FILE_OVERLAPPED标志的CreateFile。然后,您调用WriteFile并传递一个OVERLAPPED参数,该参数包含开始写入的偏移量和一个事件句柄,当IO完成时会发出信号。
或者,您可以调用WriteFileEx,它会在IO完成时调用您提供的功能,而不是发出事件信号。
请注意,由于这是Windows中页面文件的大小,因此应以4K(4096)字节的块而不是100字节的块进行写入。它将大大加快您的IO。还要注意,这只需要一个文件句柄,而不是多个文件句柄。