blob: 3fd3a6939a00bca02bc68baf634962bd14472c04 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
Atomically write to a file on POSIX-compliant systems while preserving
permissions.
On most Unix systems, mv is an atomic operation. This makes it simple to
write to a file atomically just by using the mv operation. However, this
will destroy the permissions on the original file. This library does the
following to preserve permissions while atomically writing to a file:
* If an original file exists, take those permissions and apply them to the
temp file before mving the file into place.
* If the original file does not exist, create a following with default
permissions (based on the currently-active umask).
This way, when the file is mv'ed into place, the permissions will be the
ones held by the original file.
|