Beefy Boxes and Bandwidth Generously Provided by pair Networks
No such thing as a small change

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 :)


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 taking refuge in the Monastery: (3)
As of 2016-10-25 02:11 GMT
Find Nodes?
    Voting Booth?
    How many different varieties (color, size, etc) of socks do you have in your sock drawer?

    Results (313 votes). Check out past polls.