Progettino
Propedeutica al progetto stesso, ma del tutto facoltativa, è la realizzazione di un
progettino che, se presentato insieme al progetto vero e proprio, potrà incrementarne il punteggio del 25%.
Problema
Realizzare un programma che:
- riceva come argomento sulla command line il nome di un file di input, il contenuto del quale e' indicato nel seguito
- esplori ricorsivamente il contenuto delle directory, specificate nel file di input, controllando la data e l'ora dell'ultima modifica (mtime) a ciascun file
- riporti in un file il path completo di tutti i files piu' vecchi di una data & ora, anch'essa indicata nel file di input
La visita dell'albero delle directory deve essere effettuata in parallelo da un massimo di N processi distinti (N anch'esso contenuto nel file di input). Ovviamente il numero di processi impiegato protrà essere minore di N se il numero di directory (detto
D) da esplorare sia esso stesso minore di N. Nel caso in cui, invece, il numero directory
D sia maggiore di N, uno dei processi esplorerà le rimanenti. Ad esempio, con 10 directory e 3 processi, il primo ed il secondo processo esploreranno tre directory, il terzo quattro.
Si puo' assumere che:
- le directory non siano parzialmente sovrapposte, cioe' che nel file di input non appaia una directory e, successivamente, una sua sottodirectory
- non sia possibile visitare due volte lo stesso sottoalbero (e.g. non esistano link simbolici "all'indietro")
Se nella scansione dovesero venire incontrati oggetti diversi da file o directory (es. socket, device, etc.) questi possono essere ignorati.
Il file di output dovrebbe riportare l'output in modo
ordinato includendo cioè, nella stessa porzione di file, tutti i file appartenenti ad un medesimo sottoalbero.
Il file di input conterrà quindi:
- il nome del file di output
- la data e l'ora di "soglia" per l'inclusione di un di un file nell'output (secondo una sintassi "ragionevole")
- il numero massimo di processi da utilizzare per la visita delle directory
- un elenco di pathname (directory) da esplorare
Analogamente al progetto vero e proprio, anche il progettino dovrà essere adeguatamente documentato (descrizione dell'algoritmo, delle strutture dati, etc).
Consegna
Con le stesse modalità del progetto, descritte
qui
--
GiorgioRichelli - 24 Nov 2004