我有两个句柄,它们是从同一文件创建的,

在这种情况下,我想使用第一个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。还要注意,这只需要一个文件句柄,而不是多个文件句柄。

10-07 19:26
查看更多