http://qs1969.pair.com?node_id=509900


in reply to Re: Exclusive open for append
in thread Exclusive open for append

Both programs will have the file open for append. If both programs write to them, there's no garantee you end up with something that isn't garbage...

On sane Unix-like systems, there is a guarantee: you won't get garbage, regardless of the size of your writes. [1] If the log file is opened in append mode and each entry is committed as a single write (system call), Unix file semantics guarantee that the entries will be appended to the file atomically. (For more information see Re^3: Looking for a simple multiprocess-enabled logging module, which quotes the relevant bits of the Single Unix Specification.)

See also "All I want to do is append a small amount of text to the end of a file. Do I still have to use locking?" from perlfaq5.

Cheers,
Tom

[1] Provided that your log file resides on a filesystem that supports Unix semantics. Network-mounted filesystems often fall short.