in reply to multiple processes
To avoid this scenario, open two filedescriptors in the parent, before the fork(). After the fork() close the appropiate end of the pipe. This code will probably do what you want:
Hope this helps.#!/usr/bin/perl -w use strict; # Lots of nice code here... open RFIFO, "< $ENV{HOME}/.fifopipe" or die "Cannot open read pipe: $!\n"; open WFIFO, "> $ENV{HOME}/.fifopipe" or die "Cannot open write pipe: $!\n"; if (fork()) { # Parent close WFIFO; # Your parent code, which can now safely block on # <RFIFO> } else { # Child close RFIFO; # Your child code, which can take its time to write() # to the pipe. exit 0; }
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Re: multiple processes
by Mirage (Sexton) on Oct 25, 2001 at 13:59 UTC |