in reply to Re: Re: Writing to flock files in a daemon
in thread Writing to flock files in a daemon

Opening with ">" truncates the file. Since flock is and advisory lock (at least on Unix), it won't stop the second process from doing this. See open or "perldoc -f open".

I tend to check for the file's existance first and then use "+<$file" if it's there and ">$file" if it's not. I think this is sloppy though since there is probably a race condition since the filecheck and the open occur at two different times (i.e. the file may come into existance between the file check and the open() call if another process was running at the same time). If the lock file is never really deleted after it is first, this probably isn't a problem.

I'd suggest using sysopen with O_RDWR | O_CREAT and then truncating the file yourself just before you perform the write.

bluto

  • Comment on Re: Re: Re: Writing to flock files in a daemon