• Keine Ergebnisse gefunden

Tempor¨ are Dateien

N/A
N/A
Protected

Academic year: 2021

Aktie "Tempor¨ are Dateien"

Copied!
2
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Universit¨at Ulm - Abteilung Angewandte Informationsverarbeitung Dr. Johannes Mayer und Hans Braxmeier, Wintersemester 2003

13. ¨ Ubungsblatt zur Vorlesung Allgemeine Informatik III

Abgabetermin: Dienstag, 10.02.2004

Tempor¨ are Dateien

(10 Punkte)

Implementieren Sie ein Programm, mit dem Datens¨atze fester L¨ange (Rekords) einer Datei hinzugef¨ugt, gesucht bzw. gelesen, ver¨andert und gel¨oscht werden k¨onnen. Jeder Datensatz soll dabei folgende Informationen eines Studenten enthalten: Matrikelnummer, Name und Studien- fach.

Beachten Sie beim Implementieren folgende Punkte:

• Existiert die Datei noch nicht bzw. enth¨alt die Datei keinen Datensatz, so soll bei Lese-, Anderungs- oder L¨oschoperationen eine Warnung ausgegeben werden.¨

• Existiert die Datei noch nicht und wird ein Datensatz hinzugef¨ugt, so soll die Datei (falls m¨oglich) neu angelegt und der Datensatz hinzugef¨ugt werden.

• Jeder Datensatz soll mit einer einzigen Schreiboperation hinzugef¨ugt werden, d.h. es soll jeweils der komplette Datensatz geschrieben werden und nicht nur Teile davon.

• Alle weiteren Datens¨atze sollen nach Name sortiert in die Datei eingef¨ugt werden.

• Existiert bereits ein Datensatz mit diesem Namen, so soll der alte Datensatz durch den neuen Datensatz ersetzt werden.

• Bei allen Operationen darf sich h¨ochstens ein Datensatz im Arbeitsspeicher des Rechners befinden. Arbeiten Sie deshalb bei allen Operationen, die mehrere Datens¨atze ben¨otigen, mit tempor¨aren Dateien.

• Verwenden Sie zum Lesen und Schreiben von Datens¨atzen nur die Funktionen read(), write() und lseek()

• Beim Suchen, das allen Operationen zugrunde liegt, soll stets der Studentenname als Suchkriterium dienen.

• Verwenden Sie Bin¨ares Suchen, um einen Datensatz zu finden (Dateigr¨oße und die Gr¨oße eines Datensatzes k¨onnen bestimmt werden...).

Anmerkungen: Beachten Sie zu tempor¨aren Dateien die Hinweise in den ¨Ubungen und den Teil im Skript (unter unlink()). Tempor¨are Dateien geh¨oren in das Verzeichnis /tmp. Einen eindeutigen Namen f¨ur eine tempor¨are Datei kann man mittels der Prozess-ID (getpid()) und sprintf() bzw. via mktemp() (siehe Beispiel im Skript) erzeugen. Die Funktion mkstemp() darf nicht verwendet werden!

1

(2)

Beispiel:

thales$a.out

(a)dd, (f)ind, (c)hange, (d)elete, (p)rint, (q)uit? a Matrikelnummer? 12345

Name? Markus Fach? L¨offler

(a)dd, (f)ind, (c)hange, (d)elete, (p)rint, (q)uit? a Matrikelnummer? 5643

Name? Katrin Fach? M¨uhlhaus

(a)dd, (f)ind, (c)hange, (d)elete, (p)rint, (q)uit? p 5643, Katrin, M¨uhlhaus

12345, Markus, L¨offler

(a)dd, (f)ind, (c)hange, (d)elete, (p)rint, (q)uit? d Name? Markus

(a)dd, (f)ind, (c)hange, (d)elete, (p)rint, (q)uit? p 5643, Katrin, M¨uhlhaus

(a)dd, (f)ind, (c)hange, (d)elete, (p)rint, (q)uit? f Name? Markus

RECORD NOT FOUND!

(a)dd, (f)ind, (c)hange, (d)elete, (p)rint, (q)uit? q thales$

Viel Erfolg!

2

Referenzen

ÄHNLICHE DOKUMENTE

- für die aus der SWD überführten Personennamensätze mit Urheberkennung 386 - für Erfassung und Korrektur von PND-Sätzen unter. ILTIS-Online-Erfassungsbedingungen -

Die Bitte von Kliniken, mit der Auswertung der Neonatalerhebung zugleich eine der Berichtspflicht entsprechende Aufarbeitung der Daten zu erhalten, musste abgelehnt werden, da

- „Häufiger als 2 mal wöchentlich“ geben Sie bitte an, wenn Ihr Patient gemäß seiner Einschätzung jede Woche an mehr als zwei Tagen auftretende Symptome angibt, die eindeutig

An einem Tabakentwöhnungsprogramm seit der letzten Empfehlung teilgenommen Genau eine Angabe ist bei allen aktiven Rauchern erforderlich und nur im Rahmen einer

Genau eine Angabe ist erforderlich und zulässig, wenn im Feld „Aktuelle Statin-Dosis“ die Angabe „Moderat“ oder „Niedrig“ erfolgt ist. Bitte geben Sie den Grund

[r]

2401 Tatsache, dass nach § 29 des Staatsangehörigkeitsgesetztes ein Verlust der deutschen Staatsangehörigkeit eintreten kann.. DATENSATZ FÜR DAS MELDEWESEN Stand Blatt

2801 Tatsache, dass eine sprengstoffrechtliche Erlaubnis oder ein Befähigungsschein nach § 20 Sprengstoffgesetz erteilt worden ist – Datum der erstmaligen Erteilung –..