I/O Metaphern Präliminarien Manfred Thaller, Universität zu Köln Köln 21. Oktober 2008
I. Grundlagen
Binäres Lesen (Qt flavour) 3 Annahme: Eine Datei ist eine lineare Sequenz von Bytes. Diese werden vom Beginn an mit einem Offset gezählt. Eine Datei kann also als Array auf der Festplatte verstanden werden.
Binäres Lesen (Qt flavour) 4 Lesen imageFile.seek(ifd_addr); imageFile.read((char *)buffer,n); Schreiben imageFile.seek(ifd_addr); imageFile.write((char *)buffer,n); Position merken ifdstart = imageFile.pos();
Binäres Lesen (C - Directories) 5 struct dirent *dp; DIR *dir; if ( (dir=opendir(/x/y/z)! = NULL) { for (dp=readdir(dir); dp!=NULL; dp=readdir(dir)) { // Directory Entry bearbeiten … } closedir(dir); }
Binäres Lesen (C - Directories) 6 struct dirent { __ino_t d_ino; __off_t d_off; unsigned short int d_reclen; unsigned char d_type; char d_name[256]; };
II. Checkliste
Begriffe: Woraus besteht eine Datei? 8 Was sind: Blocks? I-nodes? Superblocks?
III. Aufgaben
Aufgabe Fundamental file processing 2.Abstraction from C => C++ Referenztext: Chapter 2, p. 13 – 37 Vortragender J. Graf (28. Oktober)
Aufgabe Secondary Storage 2.Buffering 3.I/O in UNIX Referenztext: Chapter 3.1, p ; 3.8 – 3.10, p. 85 – 105 Vortragende: H. Fiegenbaum (4. November)
Aufgabe 3 12 Fields and RecordsSecondary Storage Referenztext: Chapter 4, p. 117 – 148 Referentin V. Dinslaken (11. November)
Aufgabe 4 13 Managing Records Referenztext: Chapter 5, p
Aufgabe 5 14 Beyond Records Referenztext: Chapter 5, p
Aufgabe 6 15 Reclaiming Space Referenztext: Chapter 6.2, p
Aufgabe 7 16 Finding & Sorting Referenztext: Chapter 6.3 – 6.4, p
Aufgabe 8 17 Indexing Referenztext: Chapter 7, p