diff options
| author | Alan Donovan <adonovan@google.com> | 2023-01-17 11:30:48 -0500 |
|---|---|---|
| committer | Alan Donovan <adonovan@google.com> | 2023-01-17 18:12:07 +0000 |
| commit | c0799f7015e6cae37c21294bb94f56050fda5f4e (patch) | |
| tree | 90ac08853d06a19c235e2adcfa1d65aeefc17f2b /src/os | |
| parent | d74c31f0ba8b7940350f93df044a5cb7002e02d0 (diff) | |
| download | go-c0799f7015e6cae37c21294bb94f56050fda5f4e.tar.xz | |
os: document that Rename is not atomic on non-Unix platforms
Windows provides no reliable way to rename files atomically.
The Plan 9 implementation of os.Rename performs a deletion
if the target exists.
Change-Id: Ife5f9c97b21f48c11e300cd76d8c7f715db09fd4
Reviewed-on: https://go-review.googlesource.com/c/go/+/462395
Auto-Submit: Alan Donovan <adonovan@google.com>
Reviewed-by: Ian Lance Taylor <iant@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Run-TryBot: Alan Donovan <adonovan@google.com>
Reviewed-by: Bryan Mills <bcmills@google.com>
Diffstat (limited to 'src/os')
| -rw-r--r-- | src/os/file.go | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/src/os/file.go b/src/os/file.go index 6781b54da0..3d71ac068e 100644 --- a/src/os/file.go +++ b/src/os/file.go @@ -338,6 +338,7 @@ var lstat = Lstat // Rename renames (moves) oldpath to newpath. // If newpath already exists and is not a directory, Rename replaces it. // OS-specific restrictions may apply when oldpath and newpath are in different directories. +// Even within the same directory, on non-Unix platforms Rename is not an atomic operation. // If there is an error, it will be of type *LinkError. func Rename(oldpath, newpath string) error { return rename(oldpath, newpath) |
