/**************************************/
/*                                    */
/*  Prof. Dr. Carsten Vogt            */
/*  Fachhochschule Koeln              */ 
/*  Fakultaet 07, Nachrichtentechnik  */
/*  http://www.nt.fh-koeln.de/vogt    */
/*                                    */
/*  UNIX-C-Schnittstelle:             */
/*  exit() und wait()                 */
/*                                    */
/**************************************/

#include <stdio.h>
#include <stdlib.h>

main() {

  int status;

  printf("\n");

  if (fork()==0) {

    printf("Sohn: Ich schlafe jetzt\n\n");
    sleep(2);

    printf("Sohn: Ich bin jetzt fertig\n\n");

    exit(0); /* Sohn terminiert mit dem Rueckgabestatus 0 */

  }

  printf("Vater: Ich warte auf den Sohn\n\n");

  wait(&status); /* Vater wartet, bis der Sohn terminiert hat. Er erhaelt
                    in 'status' den Rueckgabecode des Sohn-exits sowie
                    weitere Informationen. */

  printf("Vater: Sohn ist jetzt fertig\n\n");

  printf("Vater: Rueckgabestatus = %d\n\n",status);

}
