16.05.19 17:05, Antoine Pitrou пише:
On Thu, 16 May 2019 16:04:36 +0300
Serhiy Storchaka <storch...@gmail.com>
wrote:
16.05.19 14:33, Antoine Pitrou пише:
On Thu, 16 May 2019 13:05:48 +0300
Serhiy Storchaka <storch...@gmail.com>
wrote:
16.05.19 11:28, Barry Scott пише:
To replace one symlink with another atomically is possible by using rename() or 
renameat()
something like:

        os.symlink( src, tmp_symlink )
        os.rename( tmp_symlink, dst )

Somebody can replace tmp_symlink between os.symlink() and os.rename().

Not if tmp_symlink is created in a directory with strict permissions, I
guess.

But in such case we do not need complex games with a temporary symlink.
Just use os.symlink() and os.unlink() if needed.

I was talking about the *tmp_symlink*, not *dst*.

They both should be on the same file system. The simplest way to achieve this is to create tmp_symlink in the same directory as dst.

_______________________________________________
Python-ideas mailing list
Python-ideas@python.org
https://mail.python.org/mailman/listinfo/python-ideas
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to