BUGH Wuppertal Fachbereich 7 - Mathematik Axel Rogat
Betriebssysteme und betriebssystemnahes Programmieren
Übungsblatt 1

Aufgabe 1
Schreiben Sie ein C-Programm, das im aktuellen Verzeichnis folgende Directory-Struktur erzeugt:

Die Directories sollen als Namen die Zahlen 1 bis n tragen, wobei die Maximalanzahl n dem Programm als Aufrufparameter übergeben werden soll. Fangen Sie eine fehlende oder ungültige Angabe von n ab. Beachten Sie, daß sich kein vollständiger Binärbaum ergibt, wenn n keine Zweierpotenz-1 ist!

Sie sollten dabei mit einer Funktion arbeiten, die sich selbst rekursiv aufruft. Die Prototypen der beiden benötigten Systemaufrufe mkdir und chdir finden Sie in Kapitel 3 des Skripts. Die Directory-Namen könnten Sie z.B. mit sprintf erzeugen.

Aufgabe 2
Schreiben Sie unter UNIX ein C-Programm, das eine Kopie von einer gegebenen Datei erzeugt, dabei aber die Byte-Reihenfolge umkehrt. Die Namen von Ein- und Ausgabedatei sollen dem Programm als Aufrufparameter übergeben werden.

Beachten Sie dabei folgendes:

  • Lesen Sie nicht mit Datei-Operationen aus der Eingabedatei, sondern blenden Sie sie mittels mmap in den Hauptspeicher ein und lesen dann mit einfachen Pointer-Operationen. Vergessen Sie am Schluß nicht das munmap!

  • Verwenden Sie zum Schreiben in die Ausgabedatei den Systemaufruf write. Geben Sie aber nicht einzelne Bytes aus, sondern puffern Sie selbst jeweils z.B. 256 Bytes in einem char-Array.

Überlegen Sie sich, ob auch bei der Ausgabe ein sinnvoller Einsatz von mmap möglich ist.

Die Prototypen der benötigten Systemaufrufe open, close, write, mmap und munmap und die Angaben zu benötigten include-Dateien finden Sie in Kapitel 3 des Skripts.

Sie können Ihr Programm leicht testen, indem Sie es zweimal anwenden und dann das Original und das Ergebnis mittels diff vergleichen.

email: axel@math.uni-wuppertal.de Zurück Abgabe: 3.5.1999
 

© 1999 Axel Rogat