#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <wait.h>
#include <sys/types.h>

int main (void) {
   pid_t pid;
   int x = 1;
   int *ptr = &x;
   
   pid = fork();
   printf("x = %i, &x = %p\n", x, &x);
   printf("ptr = %p, *ptr = %i\n", ptr, *ptr);
   
   if (pid > 0) { /* Elternprozess */
     *ptr = *ptr+1;
   }
   else if (pid == 0) { /* Kindprozess */
     sleep(3);
   }
   else { /* Fehler */
     perror("Fehler bei fork.");
     return EXIT_FAILURE;
   }
   
   printf("x = %i, &x = %p\n", x, &x);
   printf("ptr = %p, *ptr = %i\n", ptr, *ptr);
   return EXIT_SUCCESS;
}
