如何保证Windows下异步写入文件的顺序?

Bra*_* Ds 2 io winapi asynchronous

鉴于此伪代码:

  1. 打开异步访问文件
  2. 写入Value1文件末尾位置
  3. 写入Value2文件结尾,与2相同的线程.

我可以肯定以前Value1一直存在,Value2我怎样才能避免竞争条件?

Ric*_*ard 6

我可以确定在Value2之前Value1将是-allay-,并且Value2不会覆盖Value1

不,Win32没有这样的保证.

通常的方法是通过指定在OVERLAPPED实例的字段中开始写入的位置来自己管理写入位置.IE浏览器.你确保哪个写入首先完成并不重要.

请参阅文档中的同步和文件位置WriteFile.