Professor Dr. F. Schweiggert
Abteilung Angewandte Informationsverarbeitung
Mario Jeckle und Ingo Melzer

Ausgabedatum: 16. Mai 2000
Abgabetermin: 26. Mai 2000

back to top   2. Übungsaufgabe -- Getrennt Marschieren... (10 Punkte)

 

Schreiben Sie, aufbauend auf der Übung 1, ein C-Programm, welches nacheinander mehrere Prozesse erzeugt, die dasselbe Programme ausführen. Dieses Programm soll als separat ausführbare Datei abgelegt sein.
Das Programm inkrementiert den Zähler in der Datei um eine feste Anzahl Schritte (siehe letzte Übung).
Die Anzahl der zu erzeugenden Programminstanzen (kleiner 5) wird als Kommandozeilenparameter übergeben.
Um das Auslesen des alten Zählerstandes in der Datei zu verhindern sollte jeder Prozess mit Schreibabsicht, die Datei vor dem Lesevorgang sperren und nach dem Schreiben des neuen Zählerstandes wieder freigeben. Kann ein Prozess die Datei dreimal nicht sperren, so soll er mit einem positiven Exit-Status terminieren.
Der Erzeuger soll auf die Beendigung aller von ihm erzeugten Kindprozesse warten und den zurückgelieferten Exit-Status ausgeben.

Hinweise

Es bieten sich die Systemfunktionen exec zur Ausführung der Einzelprogramme und flock, bzw. lockf, zum Sperren der Datei an. Lese- und Schreiboperationen sollten mit read bzw. write durchgeführt werden.

UNIX-Manpages im HTML-Format




separator line
Service provided by Mario Jeckle
Generated: 2004-06-07T12:31:42+01:00
Feedback Feedback       SiteMap SiteMap
This page's original location This page's original location: http://www.jeckle.de/vorlesung/soft/uebung2.html
RDF metadata describing this page RDF description for this page