Beefy Boxes and Bandwidth Generously Provided by pair Networks
XP is just a number

RE: File Locking

by KM (Priest)
on May 22, 2000 at 07:19 UTC ( #14140=note: print w/ replies, xml ) Need Help??

in reply to File Locking

To see an example of flock() in action, try running this script in a few consoles side by side.

#!/usr/bin/perl -wT
use Fcntl qw(:flock);
my $file = 'test_lock.txt';
my $SEMAPHORE = $file . '.lck';
open(S, ">$SEMAPHORE") or die "$SEMAPHORE: $!";
flock(S, LOCK_EX) or die "flock() failed for $SEMAPHORE: $!";
open (FH, ">>$file") or die "Can't open $file: $!";
print "About to write\n";
print FH "I have written ($$)\n";
print "Written\n";
close FH;
print "Going to sleep...\n";
sleep 10;
print "Woken up...\n";
close S;

I just wanted to go through this because I see a lot of mistakes that people make with locking files, and show another way of making it all more secure. To make it even more secure, use a database :)


Comment on RE: File Locking

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://14140]
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others browsing the Monastery: (5)
As of 2015-11-26 23:40 GMT
Find Nodes?
    Voting Booth?

    What would be the most significant thing to happen if a rope (or wire) tied the Earth and the Moon together?

    Results (710 votes), past polls