I see a posting suggesting using system() which does sound like a good
solution. If for some reason you need to fork explicitly look at waitpid()
I think it will do what you want.
Peter C.
> -----Original Message-----
> From: Ulises Vega [mailto:[EMAIL PROTECTED]]
> Sent: Monday, June 04, 2001 12:07 PM
> To: [EMAIL PROTECTED]
> Subject: using fork
>
>
> Hello everybody,
>
> I'm using fork with a simple application, and it looks like if the
> father process continues executing without waiting his child, the
> following is the code that i use:
> my $redirected=1;
> my $pid=fork();
> if($pid == 0){ #this the child
> my @output=`date`;
>
> $Vocp->log_msg("THIS IS THE
> CHILD WHICH \$pid IS $pid>>>>@output");
> my
> $redirected=$Vocp->dial(32);
> $Vocp->log_msg("REDIRECTION
> DONE, AND \$redirected is
> $redirected\n");
> exit(0);
> }elsif($pid != 0){
> wait;
> my @output=`date`;
> $Vocp->log_msg("THIS IS THE
> FATHER AND \$pid is $pid>>>@output\n");
> }else{
> $Vocp->log_msg("I DON'T KNOW
> WAHT THE HELL IS GOING UP HERE !!!!!!!!!!!\n");
>
> }
>
> $vocp->log_msg is method to write a message to estandard error (which
> was previously redirected to a file)
> $vocp->dial() it makes a call to a phone
>
> the output error file is
>
> /etc/mgetty+sendfax/vocp/vocp.pl.st.trans [2403]: Redirection could go
> for 032, which is command box in VOCP=HASH(0x811893c)
> /etc/mgetty+sendfax/vocp/vocp.pl.st.trans [2403]: Redirection
> certainly
> goes for 032 which is command in VOCP=HASH(0x811893c)
> /etc/mgetty+sendfax/vocp/vocp.pl.st.trans [2463]: THIS IS THE CHILD
> WHICH $pid IS 0>>>Mon Jun 4 13:58:36 CDT 2001
> @@@@@@@ here is the problem the father is writting before the child
> ends
> /etc/mgetty+sendfax/vocp/vocp.pl.st.trans [2403]: THIS IS THE
> FATHER AND
> $pid is 2463>>>Mon Jun 4 13:58:36 CDT 2001
> /etc/mgetty+sendfax/vocp/vocp.pl.st.trans [2403]: Redirection
> certainly
> went for 032 which is command in VOCP=HASH(0x811893c) and sucesfull
> /etc/mgetty+sendfax/vocp/vocp.pl.st.trans [2403]: Disconnecting from
> vgetty
> @@@@@@@@ and the consecuence is disconected, so i can't dialout
> /etc/mgetty+sendfax/vocp/vocp.pl.st.trans [2463]: TRYING TO DIAL
> 32>>>>Mon Jun 4 13:58:36 CDT 2001
> /etc/mgetty+sendfax/vocp/vocp.pl.st.trans [2463]: Got "GOODBYE SHELL"
> /etc/mgetty+sendfax/vocp/vocp.pl.st.trans [2463]: PREVIOUS $RESP TO
> DIAL>>>> GOODBYE SHELL <<<<
> /etc/mgetty+sendfax/vocp/vocp.pl.st.trans [2403]: Sent "GOODBYE"
> /etc/mgetty+sendfax/vocp/vocp.pl.st.trans [2403]: Got "READY"
> /etc/mgetty+sendfax/vocp/vocp.pl.st.trans Mon Jun 4 13:58:36 2001
> [2403] Fatal: Sent "GOODBYE". Expected "GOODBYE SHELL". Got "READY".
> (VGETTY)
> /etc/mgetty+sendfax/vocp/vocp.pl.st.trans [2463]: Sent "STOP"
> /etc/mgetty+sendfax/vocp/vocp.pl.st.trans [2463]: Got ""
> /etc/mgetty+sendfax/vocp/vocp.pl.st.trans Mon Jun 4 13:58:36 2001
> [2463] Fatal: Sent "STOP". Expected "READY". Got "".
> (VGETTY)
>
>
> i was expecting something like, dialout then disconected, etc..
>
> am i well debugging the system?, or is there another way?
> does someone have any idea about this?
>
> thanks for all.
>
> Ulises
>