Dr. Andreas Borchert Institut für Angewandte
Informationsverarbeitung 6. Februar 2007
Christian Ehrhardt Blatt 13
Allgemeine Informatik III (WS 2006/2007)
Abgabetermin 13.02.2007
Schreiben Sie (analog zu unique) aus dem Skript ein Programm,
das eine 8192-Byte große, mit Nullen gefüllte Datei anlegt, falls
diese nicht existiert. Dabei sollen folgende Bedingungen erfüllt sein:
- Der Name der Datei wird auf der Kommandozeile angegeben.
- Der Inhalt einer ggf. existierenden Datei diesen Namens darf
unter keinen Umständen verändert werden.
- Wenn die Datei existiert, muß sie eine Länge von genau
8192 Bytes haben.
- Es muß davon ausgegangen werden, daß mehrere Programme
gleichzeitig versuchen, diese Datei anzulegen. Über diese
Programme ist nichts bekannt, außer, daß sie dies auf eine
Weise tun, die den hier angegebenen Bedingungen entspricht.
- Insbesondere gibt es anders als bei unique im Skript
keinen Dateinamen, der allen Programmen gemeinsam
bekannt ist.
Hinweis: Wenn die oben angegebenen Bedingungen erfüllt
sein sollen, dann muß auf atomare Weise eine Datei mit dem
gewünschten Namen erzeugt werden, die dann sofort den richtigen
Inhalt und die richtige Länge hat. Hilfreich dafür kann der
Systemaufruf link sein.
Schreiben Sie zwei Programme, die den Systemaufruf mmap und
die im ersten Teil der Aufgabe erzeugte Datei verwenden, um
untereinander Daten auszutauschen. Auf eine sichere Synchronisation
der beiden Prozesse kann in diesem Teil der Aufgabe verzichtet werden.
Christian Ehrhardt
2007-02-06