http://www.perlmonks.org?node_id=136383


in reply to mysterious fork() failure

# create new directory here if (($pid = fork()) == 0) { # remove directory here } if (!defined($pid)) { # log fork() failure here # remove directory here }
You need to reverse your tests, and check for undef'ness of $pid first. For enlightenment as to why, ponder on   print undef == 0 ? "true!\n" : "false\n";

Replies are listed 'Best First'.
Re: Re: mysterious fork() failure
by Marcello (Hermit) on Jan 05, 2002 at 02:02 UTC
    So,
    if (!defined($pid = fork())) { # parent process, fork() failure } elsif ($pid == 0) { # child process, successful fork() } elsif ($justSomeVar == 1) { # parent process, successful fork() } else { # parent process, successful fork() }
    is the way to go?