Append-mode I/O on Windows and process I/O redirection
Alan.Bateman at Sun.COM
Sat Jun 7 09:12:24 PDT 2008
Martin Buchholz wrote:
> I suppose we'll sadly have to back out all the changes for 6631352.
> Another strategy is to open the file in FILE_WRITE_DATA mode as before,
> but to make each individual write work in append mode.
> Another look at the msdn documentation suggests that this is possible
> (did I miss this when I explored the docs a year ago?)
> Use WriteFile with a non-null OVERLAPPED, with Offset = OffsetHigh = 0xffffffff
> "To write to the end of file, specify both the Offset and OffsetHigh
> members of the OVERLAPPED structure as 0xFFFFFFFF. This is
> functionally equivalent to previously calling the CreateFile function
> to open hFile using FILE_APPEND_DATA access."
> The above has a good chance of properly fixing 6631352.
I agree this is the approach to try. I've used WriteFile for append mode
using this approach in another context and it worked although I don't
recall ever checking its atomicity. The MSDN documentation is never
clear on such topics but the AtomicAppend test that you included with
these changes can quickly check.
> What should the process code do, given that it doesn't control
> how the subprocess will perform individual writes?
Maybe ProcessBuilder can open the file itself in append mode rather than
More information about the core-libs-dev