======================================= Fork-and-Join-Pattern mit fork und wait [TOC] ======================================= In der Vorlesung sind die Systemaufrufe _fork_ und _wait_ vorgestellt worden, mit denen das Fork-and-Join-Pattern umgesetzt werden kann. Folgendes Beispiel zeigt, wie ein einzelner Kindprozess erzeugt wird, der mit einem zufälligen Exit-Code endet und wie der Eltern-Prozess anschließend darauf wartet, dass der Kindprozess beendet ist: :import: session01/forkandwait.c Aufgabe ======= Passen Sie das Beispiel so an, dass * nicht nur ein Kindprozess erzeugt wird, sondern 10, * der _i_-te Kindprozess als Exitcode _i_ zurückgibt und * im Elternprozess die Summe der Exit-Codes berechnet wird. Hinweise: * Auf Fehler sollten Sie dabei wie gehabt reagieren. * Wenn ein Kindprozess erfolgreich terminiert, ist der Exit-Code nicht mehr auszugeben, sondern nur noch aufzusummieren. * Der Systemaufruf _wait_ liefert -1 zurück, wenn es keine weiteren Kinder mehr gibt. Entsprechend kann _wait_ solange aufgerufen und bearbeitet werden, solange das Resultat nicht negativ ist. Bitte lassen Sie Ihr Programm auf einem der PCs im E.44 laufen und auf keinen Fall auf unseren Servern (Theon, Thales). :navigate: up -> doc:index next -> doc:session01/page02