Say we have multiple systems that all have an nfs-mounted filesystem. All of them want to create a new directory under a common dir, e.g. /mnt/home/volume. I know that there's the O_EXCL mode to sysopen which is guaranteed to fail if a file already exists, but is there a similar way to create a directory?
I though about using this pseudocode:
my $dir = "/mnt/home/volume/";
my $i = 0;
while(1) {
$i++;
my $success = 1;
sysopen (FH, $dir . "$i", O_RDWR|O_EXCL|O_CREAT) or $sucess = 0;
last if $success;
}
# Now it should be safe to create dir $i
This looks kind of crappy, is there a better way to do that or a module which already provides that functionality?
Thanks!