6 ms·
What is the reason for saving then moving for existing files? This an optimization specific to certain file systems?
by rnicholson 12y ago
What is the reason for saving then moving for existing files? This an optimization specific to certain file systems?
- WalterBright 12y agoSo if there's a write failure the user won't lose his file.
- samdk 12y agoMoving a file (within the same file system) is an atomic operation on most file systems, but writing data is not. If you don't do this and you're overwriting a file directly and the write fails for some reason, the data from the old file will be gone and you'll only have a partially-written new file in its place. This also helps with systems that continuously poll files and watch for changes. If you have, say, a compiler watching your file, you don't want it to start compiling a partially-written version of your file and give you some strange error just because it happened to poll before the write finished.