title: Why getppid() from the child return 1
body: <p>I was running the program</p>
  
  <pre class="lang-c prettyprint-override"><code>#include&lt;stdio.h&gt;
  #include &lt;unistd.h&gt;
  main()
  {
      pid_t pid, ppid;
      printf("Hello World1\n");
      pid=fork();
      if(pid==0)
      {
          printf("I am the child\n");
          printf("The PID of child is %d\n",getpid());
          printf("The PID of parent of child is %d\n",getppid());
      }
      else
      {
          printf("I am the parent\n");
          printf("The PID of parent is %d\n",getpid());
          printf("The PID of parent of parent is %d\n",getppid());        
      }
  }
  </code></pre>
  
  <p>THe output I got was. </p>
  
  <pre><code>$ ./a.out 
  Hello World1
  I am the parent
  The PID of parent is 3071
  The PID of parent of parent is 2456
  I am the child
  The PID of child is 3072
  The PID of parent of child is 1
  </code></pre>
  
  <p>I couldnt understand the line</p>
  
  <blockquote>
    <p>The PID of parent of child is 1</p>
  </blockquote>
  
  <p>It should have been 3071?</p>