Universität Ulm - Abteilung Angewandte Informationsverarbeitung
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!