#include <stdio.h>
#include <sys/times.h>
#include <unistd.h>


int main(int argc, char **argv)
{
 char *name;
 int status;
 long i;
 struct tms t;

 /*Prozess kreiern*/
 switch(fork())
  {
   case 0 :    /*Kindprozess*/
               /*Hier könnte der Code für die Laufzeitmessung */
               /*vom Kindprozess stehen*/
               for(i=0;i<20000000;i++); /*Ein bisschen Zeitverschwenden*/
               exit(0);
   case -1:    /*Fehlerfall bei fork*/
               fprintf(stderr,"Konnte keinen neuen Prozess erzeugen");
               exit(0);
   default:    /*Elternprozess*/
               wait(&status);
               /*Auch im Elternprozess ein wenig trödeln*/
               for(i=0;i<100000000;i++);
               times(&t);

               printf("Rechenzeit des Kindprozesses :\n");
               printf("User-CPU : %lu System-CPU : %lu\n\n",
                       t.tms_cutime, t.tms_cstime);

               printf("Rechenzeit des Elternprozesses : \n");
               printf("User-CPU : %lu System-CPU : %lu\n\n",
                       t.tms_utime, t.tms_stime);
  }
   return 0;
}
