Betriebssysteme · Institut für Systemarchitektur · Fakultät Informatik · TU Dresden

Studienbegleitendes Praktikum -- Ein einfaches find-Programm




Ein einfaches find-Programm

Termin

Die Lösung für diese Aufgabe ist bis zum 03.12.2006 einzureichen.

Aufgabe 2 -- Ein einfaches find-Programm

Ziel dieses Praktikums soll es sein, Sie mit den grundlegenden Operationen und Strukturen innerhalb eines UNIX-Dateisystems vertraut zu machen.

Das Unix find Programm sucht Dateien, die bestimmte Bedingungen erfüllen. Implementieren Sie ein kleines find Programm, das folgende Syntax akzeptiert:
find <directory name> [-name <pattern>] [-type <f | d>] [-follow] [-xdev]
Sind die Bedingungen erfüllt (wenn Bedingungen angegeben wurden), wird der Name des Files ausgedruckt. Die Option -follow soll find dazu veranlassen, symbolischen Links zu folgen. Die Option -xdev soll find dazu veranlassen, nicht in Verzeichnissen zu suchen, die sich auf anderen Dateisystemen befinden. Als Parameter für -name kann ein Wildcard-Pattern folgender Form angegeben werden:
  A string is a wildcard pattern if it contains one of the characters `?', `*' or
  `['. Globbing is the operation that expands a wildcard pattern into the list of
  pathnames matching the pattern. Matching is defined by:

  A `?' (not between brackets) matches any single character.

  A `*' (not between brackets) matches any string, including the empty string. 
  ...
  (see also glob(7))
Sehen Sie sich dazu die Funktionen der Familie readdir() und stat() an.

Eine vollständige Lösung besteht aus den (funktionstüchtigen) Quelldateien (in C oder C++) sowie einem Makefile zum Übersetzen des find-Programmes.

Material

Literatur:
  • W.R. Stevens: "Advanced Programming in the UNIX Environment"
  • Manpage zu find (z.B. hier)
  • Manpages zu readdir(), stat(), glob()

Norman Feske, http://os.inf.tu-dresden.de/~nf2/
9. Oct 2006
· Copyright © 2001-2022 Operating Systems Group, TU Dresden | Impressum ·