Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

What is the reason for saving then moving for existing files? This an optimization specific to certain file systems?


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.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: