Skip to content

Commit d5e8d85

Browse files
Rollup merge of #120452 - alexcrichton:update-windows-seek-write-docs, r=ChrisDenton
std: Update documentation of seek_write on Windows Currently the documentation of `FileExt::seek_write` on Windows indicates that writes beyond the end of the file leave intermediate bytes uninitialized. This commentary dates back to the original inclusion of these functions in #35704 (wow blast from the past!). At the time the functionality here was implemented using `WriteFile`, but nowadays the `NtWriteFile` method is used instead. The documentation for `NtWriteFile` explicitly states: > If Length and ByteOffset specify a write operation past the current > end-of-file mark, NtWriteFile automatically extends the file and updates > the end-of-file mark; any bytes that are not explicitly written between > such old and new end-of-file marks are defined to be zero. This commentary has had a downstream impact in the `system-interface` crate where it tries to handle this by explicitly writing zeros, but I don't believe that's necessary any more. I'm sending a PR upstream here to avoid future confusion and codify that zeros are written in the intermediate bytes matching what Windows currently provides.
2 parents f35504d + b85b2a7 commit d5e8d85

File tree

1 file changed

+1
-1
lines changed
  • library/std/src/os/windows

1 file changed

+1
-1
lines changed

library/std/src/os/windows/fs.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ pub trait FileExt {
5959
/// function, it is set to the end of the write.
6060
///
6161
/// When writing beyond the end of the file, the file is appropriately
62-
/// extended and the intermediate bytes are left uninitialized.
62+
/// extended and the intermediate bytes are set to zero.
6363
///
6464
/// Note that similar to `File::write`, it is not an error to return a
6565
/// short write. When returning from such a short write, the file pointer

0 commit comments

Comments
 (0)