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.