关于Windows中文件操作的问题

时间:2009-07-03 14:10:18

标签: c++ windows winapi file-io

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

在这种情况下,我想使用第一个HANDLE,

写入从1到100的偏移量

使用第二把手从101到200,使用第一把手从201到300,

...

如何使此操作看起来像顺序写入,不浪费时间

将指针定位在HANDLE?

之间

1 个答案:

答案 0 :(得分:1)

您应该可以执行异步重叠IO。

要开始使用,请查看WriteFile win32 API调用。它讨论了如何将CreateFile与FLAG_FILE_OVERLAPPED标志一起使用。然后调用WriteFile并传入一个OVERLAPPED参数,该参数包含开始写入的偏移量和一个事件句柄,当IO完成时会发出信号。

另外,您可以调用WriteFileEx,它调用IO完成时提供的功能,而不是发出事件信号。

请注意,您应该写入4K(4096)字节的块,而不是100字节的块,因为这是Windows中页面文件的大小;它会大大加快你的IO。另请注意,这应该只需要一个文件句柄,而不是多个。