Bob Friesenhahn <address@hidden> wrote:
Creating a symbolic link requires testing for an existing file, and
then (if the file does not exist) creating a new file, and a
directory entry to reference it. This requires multiple network
transactions with an opportunity for race-conditions.
open() with O_CREAT|O_EXCL also creates a new file, yet that does not
subject it to race conditions. symlink() has equivalent semantics to
O_CREAT|O_EXCL. It may be that some network filesystems fail to
preserve the atomicity; I wouldn't know. But at least for local
filesystems, I don't see any problems with symlinks.