Sitzung: Jeden Freitag in der Vorlesungszeit ab 16 Uhr c. t. im MAR 0.005. In der vorlesungsfreien Zeit unregelmäßig (Jemensch da?). Macht mit!

C-Kurs/ckdu: Unterschied zwischen den Versionen

(Vorgabe: Link einfügen)
(Vorgaben ausfüllen (Text und Links))
Zeile 27: Zeile 27:
 
Eingelesene Inhalte in einer Liste speichern.
 
Eingelesene Inhalte in einer Liste speichern.
 
Diese Liste wieder Ausgaben.
 
Diese Liste wieder Ausgaben.
 +
 +
=== Vorgabe ===
 +
* [http://git.goodpoint.de/?p=ckdu-live.git;a=blob_plain;f=base2.c;hb=HEAD Download (base2.c)]
  
 
== 3. Stufe ==
 
== 3. Stufe ==
Zeile 43: Zeile 46:
 
  36K HelloWorld.tex
 
  36K HelloWorld.tex
 
</pre>
 
</pre>
 +
 +
=== Vorgabe ===
 +
* [http://git.goodpoint.de/?p=ckdu-live.git;a=blob_plain;f=base3.c;hb=HEAD Download (base3.c)]
  
 
== 4. Stufe ==
 
== 4. Stufe ==
Zeile 58: Zeile 64:
 
   0 HelloWorld.snm
 
   0 HelloWorld.snm
 
</pre>
 
</pre>
 +
 +
=== Vorgabe ===
 +
* ''Absichtlich keine Vorgabe. Bitte erweitert eure Lösung von Stufe 3.''
  
 
== 5. Stufe ==
 
== 5. Stufe ==
Zeile 79: Zeile 88:
 
** Farbige ausgabe
 
** Farbige ausgabe
 
** interaktive
 
** interaktive
 +
 +
=== Vorgabe ===
 +
* ''Absichtlich keine Vorgabe. Bitte erweitert eure Lösung von Stufe 4.''

Version vom 17. September 2010, 14:14 Uhr

Diese Aufgabe ist eine besondere Aufgabe. Sie wird(wurde) in der 7.Vorlesung fast komplett Implementiert. Da dies sehr viel ist - und damit wichtige Fragen dort geklaert werden koennen, probiert diese Aufgabe zu Hause uebers Wochenende doch schon mal selbst zu implementieren.

Aufbau dieser Seite

Es gibt mehrere Stufen. D.h. wir haben diese grosse Aufgabe schon fuer euch in kleine Happen geteilt. Wenn ihr also _wirklich_ nicht weiterkommt, koennt ihr euch in der Vorgabe (base) der naechst hoeheren Stufe angucken wie wir es geloest haben. Aber bedenke: Jede Stufe wird anspruchsvoller!

Funktion

ckdu soll wie das Tool du auch, eine Auflistung aller Dateien/Ordner und deren Groesse. Zusaetzlich soll ckdu diese Liste auch sortieren und menschlich Lesbar gestalten (in KB,MB,GB).

Stufen

1. Stufe

Ordnerinhalt einlesen und ausgeben. Aehnliche wie: ls -1s

so koennte das dann aussehen:

    4 img
29832 HelloWorld.pdf
    0 HelloWorld.snm
   36 HelloWorld.tex

Vorgabe

2. Stufe

Refactoring ! Eingelesene Inhalte in einer Liste speichern. Diese Liste wieder Ausgaben.

Vorgabe

3. Stufe

Ordnerinhalte rekursiv aufaddieren

so koennte das dann aussehen:

153M img/
   12,9M img/uebung.png
   24,9M img/vortrag.png
   86,1M img/world2.png
    3,9M img/world.png
 30M HelloWorld.pdf
   0 HelloWorld.snm
 36K HelloWorld.tex

Vorgabe

4. Stufe

sortieren nach Groesse (absteigend)

so koennte das dann aussehen:

153M img/
   86,1M img/world2.png
   24,9M img/vortrag.png
   12,9M img/uebung.png
    3,9M img/world.png
 30M HelloWorld.pdf
 36K HelloWorld.tex
   0 HelloWorld.snm

Vorgabe

  • Absichtlich keine Vorgabe. Bitte erweitert eure Lösung von Stufe 3.

5. Stufe

In dieser Stufe folgen alle wichtigen Sachen, die man noch beachten muss, wenn man auf dem Dateisystem operiert. Ausserdem bieten wir einige Ideen mit denen du dein ckdu erweiteren kannst :)


  • Symlinks nur einmal Folgen (parameter)
  • Hardlinks nur einmal Folgen
  • Fehler-handling


  • du-parameter-kompatible:
    • "--max-depth"
    • getopt
    • device verlassen


  • Wird nicht von den Betreuern betreut:
    • Farbige ausgabe
    • interaktive

Vorgabe

  • Absichtlich keine Vorgabe. Bitte erweitert eure Lösung von Stufe 4.