Beefy Boxes and Bandwidth Generously Provided by pair Networks
"be consistent"

Re: File locking

by gornox_zx (Priest)
on Jul 12, 2001 at 20:37 UTC ( #96101=note: print w/replies, xml ) Need Help??

in reply to File locking

As earlier was pointed out, locks are only suggestion. Hence, other processes can over-ride your lock, so any processes that would be a problem for reading/writing at the wrong time, would have no respect for the lock. So the lock would have no effect anyway.

I still agree; however, that using locks are a good idea. Sometimes I don't feel they are necessary if it is a custom file that only that program will be accessing, and there can only be one instance of that program open at a time. Other than a situation like that it is a good idea to lock.

If you are on a system that doesn't support flock, you can implement your own simple locking system. You do this by testing for the presence of a lockfile before opening the data file, making a lock file when you read or write to a file, and then deleting it when you're done. The following code exemplifies a very simple locking implementation:
while( -f $LOCKFILE ) { ; } open (LOCKME, "> $LOCKFILE") or die "The lockfile won't open $!"; open(CFILE, "count.txt" ) or die "The countfile won't open $!"; read( CFILE, my $buf, -s CFILE ); close( CFILE ); unlink $LOCKFILE;

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://96101]
[1nickt]: thezip use Path::Tiny. @paths = path("/foo")-> children; (Excludes "." and ".." automatically.)
[1nickt]: (Also takes a compiled regexp as an arg to filter the list)
[1nickt]: For multiple dirs use iterator(): $it = path("/foo")-> iterator; while ( my $path = $it->() ) {...}
[1nickt]: (also skips . and .. automatically, and follows subdirs if you set <c\>recurse => 1</c>
[1nickt]: $it = path("/foo")-> iterator(recurse => 1 );

How do I use this? | Other CB clients
Other Users?
Others having an uproarious good time at the Monastery: (12)
As of 2017-03-28 18:45 GMT
Find Nodes?
    Voting Booth?
    Should Pluto Get Its Planethood Back?

    Results (339 votes). Check out past polls.