𝐄𝐢𝐭𝐡𝐞𝐫 𝐎𝐫𝐩𝐡𝐚𝐧𝐞𝐝 𝐨𝐫 𝐙𝐨𝐦𝐛𝐢𝐞𝐝

// Illustration of Orphan Child Process                                                                                  
   #include<stdio.h>
   #include<sys/types.h>
   #include<unistd.h>
  
   void main()
   {
       if(fork()==0)
      {
          // Child process Execution
          printf("In Child Process\n");
          printf("PID: %d\tPPID: %d\n",getpid(),getppid());
          sleep(7);   // Child process turns into orphan process as the parent will be exiting after 3 seconds
          printf("Child Process terminated\n");
 
      }
      else
      {
          //Parent Process Execution
 
          printf("In Parent Process\n");
          printf("PID: %d\tPPID: %d\n",getpid(),getppid());
          sleep(3);   // Exit after 3 seconds
          printf("Parent Process Terminated\n");
 
      }
  }

// Illustration of transformation of Child process Zombie Process
#include&lt;stdio.h&gt;
#include&lt;unistd.h&gt;
#include&lt;sys/types.h&gt;

void main()
{
        printf(" Current process PID: %d\tPPID:%d\n",getpid(),getppid());

        if(fork()==0)
        {
                printf("Enetered Child Process\n");
                //Child execution
                printf("Executing in Child PID:%d\tPPID:%d\n",getpid(),getppid());
                sleep(2);
                printf("Exited Child Process\n");

        }
        else{
                //Parent execution

                printf("Entered Parent Process\n");
                printf("Executing in Parent PID:%d\tPPID:%d\n",getpid(),getppid());
                sleep(7);
                printf("Exited Parent Process\n");
        }
}

Leave a Reply