hi all,

            i was doing the following program in perl

         #!/usr/bin/perl
      2
      3 main();
      4
      5 sub main
      6 {
      7     my $id;
      8     if(($id=fork())==0)
      9     {
     10       print("in child process, id=$$!\n");
     11       sleep 5;
     12       $i=getppid;
     13
     14
     15       if(kill 0,$i)
     16       {
     17          print("signal sent\n");
     18       }
     19       else
     20       {
     21         print("parent died pid=$i\n");
     22       }
     23
     24       exit;
     25     }
     26     else{
     27             print("parent terminated\n");
     28             exit(0);
     29         }

note that i am taking the parent pid after the parent has exited. according to std unix idiom, the init process (with pid =1) should be the parent of the orphaned child process in this example. but when i executed the code, this was the output:

[EMAIL PROTECTED] perl]$ perl child.pl
in child process, id=13235!
parent terminated
[EMAIL PROTECTED] perl]$ parent died pid=13234

this indicates that the parent of the orphaned child process is not the init process as it should be. please tell me what is means. i did the same program in C and got the parent id as 1. cant it be the same with perl?

                                                             regards,
                                                              Madhav.

Reply via email to