#include /* Für Type pid_t */ #include /* für wait() */ #include /* für fork() und exec() */ #include /*Bibliothek für Ein-/Ausgabe */ #include /* Standartbibliothek */ int main(int args, char ** argv) { pid_t child_pid; /* Pozessnummer des Kindprozsses */ int status; /* Für das Abfragen des Exitstatus des Kindprozesses */ int a = 0; /* Zähler für fork() Aufrufe */ /* Duplizieren des des Prozesses */ child_pid = fork(); /* Verzweigung für die verschiedenen Prozesse */ if (child_pid == -1) { /* Hier nur bei Fehler von fork() */ perror("Error in the fork"); exit(1); } else if (child_pid == 0) /* Zweig für den Kindprozess */ { while (a < 10) { printf("Ich bin der %i . Childprozess.\n", a); a++; } } else /* Zweig für den Elternprozess */ { if (child_pid != wait(&status)) /* Warte auf Exitstatus des Kindprozesses */ { /* Hier nur bei Fehler beim Beenden des Kindprozess */ perror("A signal occurred before the child exited"); } } exit(0); }