Hacker News new | ask | show | jobs
by rnicholson 4371 days ago
What is the reason for saving then moving for existing files? This an optimization specific to certain file systems?
2 comments

Moving 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.

So if there's a write failure the user won't lose his file.