2 ms·
> the modified file is actually written as a new file under the same filename. That can't be true, because it would break links.
by kps 7y ago
> the modified file is actually written as a new file under the same filename.
That can't be true, because it would break links.
- nitrogen 7y agoOnly hardlinks, which are rare for scripts in my experience, and not symbolic links. I have used the same overwrite-by-rename technique in very long-running embedded processes because renaming a file is atomic on common local Linux filesystems.
- fl0wenol 7y agoIn vim, it depends on the value of backupcopy. If set to "auto" (a default-default on linux, but maybe not for a specific distribution's default vimrc), the behavior is to check to see if the number of hardlinks to a file is greater than one, and then write the modified version in place, otherwise use the write and rename strategy. See: https://github.com/vim/vim/blob/95f0b6e5a5e5861da34cc064c601faf4eeed4ed6/src/bufwrite.c#L1177 https://github.com/vim/vim/blob/95f0b6e5a5e5861da34cc064c601...