Beefy Boxes and Bandwidth Generously Provided by pair Networks
Syntactic Confectionery Delight
 
PerlMonks  

Re: Best practices for modifying a file in place: q's about opening files, file locking, and using the rename function

by fmerges (Chaplain)
on Nov 03, 2006 at 01:14 UTC ( [id://581986]=note: print w/replies, xml ) Need Help??


in reply to Best practices for modifying a file in place: q's about opening files, file locking, and using the rename function

Hi,

If you write all the programs that write to the files, you can use locks, but take care, file locks is not a real restriction, you can ignore it if you want

The temporary file, is the $new one, which after doing the stuff you need to do is renamed to the same name as the old. This is not very clean, I would use some control version system, the well known RCS would be enough, you don't need CVS or SVN for simple stuff.

For this kind of problem, take a look at some wiki, for example kwiki, they needed also to solve this issue, mean, more than one client wants to make an update.

Here you can read more info about file locking with perl.

Regards,

fmerges at irc.freenode.net
  • Comment on Re: Best practices for modifying a file in place: q's about opening files, file locking, and using the rename function

Replies are listed 'Best First'.
Re^2: Best practices for modifying a file in place: q's about opening files, file locking, and using the rename function
by ikegami (Patriarch) on Nov 03, 2006 at 04:34 UTC

    If you write all the programs that write to the files, you can use locks, but take care, file locks is not a real restriction, you can ignore it if you want

    Not necessarily. Some OSes (Windows, for example) have mandatory locks (as opposed to advisory locks).

      Even the "mandatory" locks on Windows' aren't infallible when you get into network shared filesystems, especially SMB/Samba connections, because the whole modification stack isn't under one machine's control. You are right: they profess to be mandatory and cause you grief if you ignore them, but they cause you grief anyway when the remote system does unexpected things.

      --
      [ e d @ h a l l e y . c c ]

      Hi,

      You're right, but I wasn't talking in general sense, 'cause the code snippet pasted was written in some UN*X... ;-)

      Regards,

      fmerges at irc.freenode.net

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others chanting in the Monastery: (8)
As of 2024-04-23 10:37 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found