Bram Moolenaar wrote:
> That's all taken care of when 'backupcopy' is "auto". If you want the
> original file to always exist set 'backupcopy' to "yes". Saving files
> will be slower then, since Vim needs to both write a copy and write the
> actual file.
Not quite. Of course, with 'backupcopy' set to "yes", there are not
moment when another process find file missing, but still file may be empty
or not completely written:
open("testfile", O_WRONLY|O_CREAT|O_TRUNC, 0600) = 3
write(3, "test test test\n"..., 15) = 15
fsync(3) = 0
close(3) = 0
> Since you are overwriting the file there always is a moment it's empty.
Unless use of rename() syscall, which replace it atomically (with exact
to hard link cases).
I know, that these problems result from flawed POSIX file system syscalls
behaviour, but IMHO it may be made better than it is done now.
--~--~---------~--~----~------------~-------~--~----~
You received this message from the "vim_dev" maillist.
For more information, visit http://www.vim.org/maillist.php
-~----------~----~----~----~------~----~------~--~---