in reply to Daemon To Check For Files

Do you have control over the application generating the files? You seem to have a few race conditions in your logic. What happens if the parent process the directory as files are created and spawns the child to process before the file is actually closed and static (this is an issue depending on the OS and or what the child actually does -- how does it handle broke/truncated files?). Also you have taken out the error code on the rename function -- I assume you handle duplicate file names in the fullpath/newpath locations well?


-Waswas

Replies are listed 'Best First'.
Re: Re: Daemon To Check For Files
by Anonymous Monk on Nov 04, 2003 at 23:42 UTC

    Do you have control over the application generating the files?

    Unfortunately no. See my reply to Perrin below.

    What happens if the parent process the directory as files are created and spawns the child to process before the file is actually closed and static...

    Files placed in the directory are zero byte size until the legacy app closes them (i.e completes the write). I should have included this line of code in my original example. The files themselves are tiny, less than 200 bytes.

    next if (! -s $fullPath);

    I assume you handle duplicate file names in the fullpath/newpath locations well?

    The legacy app creates the file with the date/time/PID in the filename. The timestamp goes down to milliseconds so that combined with the PID of the app should ensure a unique filename.