However, it sounds to me like you have buffering problems. In Perl, $| =1; turns "auto-flush" on. This can be a pretty "expensive" (performance wise) thing to do. But the deal is that if you are writing to a file handle, the OS may not actually send that data until its buffer is full. Flush says send this data right now even though you might otherwise wait until this 4K or whatever buffer is full.
If you have run Perl scripts and see messages from STDERR at the top of the listing when they actually happened time wise after the stuff from STDOUT, this is why. STDERR is unbuffered.
/dev/null is a special device that sends bits written to it to the "bit bucket", ie, they are "deleted". Windows also has a device like this, but I always have to search and look to find the right syntax, but yes this concept exists on all OS'es that I've used (even from the "dark ages").
A file handle re-open to the NULL device would cause a "flush",as would process termination, as would file handle close, or file handle flush.
In reply to Re: Fork child process always finishes with parent
by Marshall
in thread Fork child process always finishes with parent
by Rogue
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |