Universität Ulm - Abteilung Angewandte Informationsverarbeitung

 


1. Übungsblatt zur Vorlesung Systemnahe Software II


Abgabetermin: Dienstag, 27.04.2004


Wiederholung Dateisystem und Synchronisation    (10 Punkte)




a) Schreiben Sie ein C-Programm, das zu einer auf der Kommandozeile übergebenen Datei alle Hardlinks im aktuellen Directory auflistet, die auf die gleiche Datei zeigen. (2 Punkte)


Tipp: Die eindeutige physikalische Repräsentierung einer Datei ist die Inodenummer. Sie müssen also alle Dateien aus dem aktuellen Directory finden, die die gleiche Inodenummer wie die übergebene Datei haben. Der Aufruf von stat() liefert u.a. die Inodenummer.


Achtung: Softlinks erhöhen weder den Linkcount, noch verweisen sie auf die gleiche Inodenummer wie die Zieldatei. Softlinks können also bei der Suche ignoriert werden.



b) Schreiben Sie ein C-Programm, dem als Parameter ein String (max. 100 Zeichen) übergeben werden kann. Anschließend soll im aktuellen Verzeichnis sowie in allen Unterverzeichnissen nach Dateien gesucht werden, bei denen dieser String am Anfang der Datei steht. (2 Punkte)



c) Erweitern Sie Ihr C-Programm aus Teilaufgabe b) so, daß auch nach Dateien gesucht wird, bei denen der String am Ende der Datei steht. (3 Punkte)



d) Implementieren Sie ein C-Programm, das Tastureingaben an eine gemeinsame Datei anhängt. Dieses Programm sollte mehrmals gleichzeitig aufrufbar sein. Sorgen Sie mittels Synchronisation dafür, daß die Daten korrekt ans Ende der Datei angehängt werden. Orientieren Sie sich dabei an Kapitel 17 (Synchronisation) aus dem letzten Semester. (3 Punkte)




Verwenden Sie zum Lösen der Aufgaben nur Systemcalls wie opendir(), readdir(), open(), read(), seek(), stat(), closedir() usw.



Viel Erfolg!



Hans Braxmeier