Entwickeln Sie das Dienstprogramm DU, welches analog dem UNIX-Dienstprogramm DiskUsage ausgehend von einem bestimmten Verzeichnis für dieses Verzeichnis und alle darunterliegenden Verzeichnisse den Speicherplatz der enthaltenen Dateien jeweils unter Berücksichtigung der Dateien aller Unterverzeichnisse ermittelt. Das Ausgangsverzeichnis wird DU per Parameter übergeben. Fehlt dieser Parameter, geht DU vom aktuellen Verzeichnis aus. Die Ausgabe pro Verzeichnis enthält :
Der dem Durchsuchen des Verzeichnisbaums zugrundeliegende Algorithmus muß eine beliebige Verzeichnistiefe (zumindest theoretisch, denn praktisch wird die Rekursion durch die Stackgröße begrenzt) und eine beliebige Anzahl von Einträgen pro Verzeichnis zulassen.
Eine Musterlösung des Dienstprogramms DU liegt im EXE-Format unter der URL ftp://stud.fh-wedel.de/pub/Handout/SOFTWARE/ASS/PTL/du.exe vor. Die nachfolgenden Ausschnitte (komplett per Link) der Standardausgabe vom 23.01.2001 im RZ1 mögen die Aufgabenstellung verdeutlichen :
C:\WORK>DU M:\ 0 1 M:\LOSTF~G4\ 0 1 M:\_NETWARE\ 0 5 M:\CHEMIE\FH\CHEMIE\ORGANIC\DISK1\ ... 4.576 1 M:\NACHR~-O\ 757.131 1 M:\MEDIE~3S\ 754.817.827 0 M:\ |
C:\WORK>DU Q:\ 483.084 2 Q:\NETSCAPE\PLUGINS\ 0 2 Q:\NETSCAPE\MAIL\ 0 2 Q:\NETSCAPE\CACHE\ ... 583.381 2 Q:\MSAPPS\EQUATION\ 12.734.147 1 Q:\MSAPPS\ 160.508.207 0 Q:\ |
C:\WORK>DU V:\ 329.366 2 V:\APPS\FLW\ 3.914.619 2 V:\APPS\B&P\ 1.066.317 3 V:\APPS\ACAD\ABGABE\ ... 2.989.227 2 V:\TOOLS\UTIL\ 19.472.325 1 V:\TOOLS\ 267.760.271 0 V:\ |
C:\WORK>DU V:\APPS 329.366 1 V:\APPS\FLW\ 3.914.619 1 V:\APPS\B&P\ 1.066.317 2 V:\APPS\ACAD\ABGABE\ ... 1.657.790 2 V:\APPS\TDOT\PROGPRAK\ 2.383.791 1 V:\APPS\TDOT\ 174.832.235 0 V:\APPS\ |
C:\WORK>DU V:\COMPILER 3.808.301 2 V:\COMPILER\GCC\BIN\ 92.875 3 V:\COMPILER\GCC\CONTRIB\ASYNC\ 36.725 4 V:\COMPILER\GCC\CONTRIB\CURSES\INC\ ... 2.265 2 V:\COMPILER\A86\SOURCE\ 239.228 1 V:\COMPILER\A86\ 73.455.711 0 V:\COMPILER\ |
C:\WORK>DU V:\TOOLS 71.676 1 V:\TOOLS\MISC\ 33.450 2 V:\TOOLS\CTSI\GOODIES\ 3.984 2 V:\TOOLS\CTSI\CCH\ ... 405.041 2 V:\TOOLS\UTIL\SSTOR\ 2.989.227 1 V:\TOOLS\UTIL\ 19.472.325 0 V:\TOOLS\ |
C:\WORK>DU W:\ 37.294.121 3 W:\OFFICE51\HELP\49\ 833.536 3 W:\OFFICE51\HELP\STARONE\ 38.127.657 2 W:\OFFICE51\HELP\ ... 89.544.878 2 W:\JDK12~OT.2-D\DOCS\ 89.544.878 1 W:\JDK12~OT.2-D\ 1.418.826.875 0 W:\ |
Im Sourcecode des Dienstprogramms DU sollen die Möglichkeiten der Code- und Datenstrukturierung durch Module, Segmente und Prozeduren sowie Parameterübergaben an Unterprogramme und lokale Variablen in Unterprogrammen ausgenutzt werden. Zur Ablage der Parameter und lokalen Variablen bietet sich der Stack an (vgl. Techniken von Borland TurboPascal).
Zur weiteren Information dienen insbesondere folgende Quellen :
In dieser Seminaraufgabe sind vordefinierte Module oder Makros nicht erwünscht; davon ausgenommen sind selbstverständlich alle während der Bearbeitung dieser Seminaraufgabe erstellten Module und Makros sowie alle während der Vorlesung besprochenen Beipielprogramme.
Als Zielkonfiguration für das Dienstprogramm DU ist ein Personalcomputer (PC) gemäß Intel-Architektur (>= 8086) unter Microsoft DOS (>= Version 5.0) gefordert. Die Lauffähigkeit auf den WinNT-PC´s in den RZ´s 1, 2 und 3 muß gewährleistet sein.
Spätester Abgabetermin für die Seminaraufgabe ist der 25.06.2001. Für verspätete Abgaben gilt folgende Regelung : Pro Tag Verspätung (incl. Sonnabende und Sonntage) werden pauschal 5% der erreichbaren Punktzahl abgezogen (z.B. erreichbare Punktzahl = 100, erreichte Punktzahl = 80, Abgabe am 27.06.2001 (d.h. zwei Tage zu spät) => bewertete Punktzahl = 70).
Im Rahmen der Seminaraufgaben WS96/97 bis SS98 wurde ein "Newsletter-Service" angeboten. Dieses Angebot wurde ab der Seminaraufgabe WS98/99 durch eine Diskussion in der Newsgroup ptl.ia auf dem News-Server news.fh-wedel.de ersetzt.
Ansprechpartner : Birger Wolter