Questa è una vecchia versione del documento!
Esercitazione 6
System calls (SC) che operano su file. Per gli esercizi proposti si richiede di realizzare un Makefile.
Esercizio 1
Implementare utilizzando le chiamate di sistema open
read
write
close
l'equivalente del comando Unix cat
:
mycat file1 [fileN].
Esercizio 2
Scrivere un programma, utilizzando chiamate di sistema, che implementi l'equivalente del comando cp
. Il programma deve accettare 3 argomenti come segue:
mycp_sc filein fileout [buffersize]
L'argomento 'buffersize' e' la dimensione del buffer da utilizzare per le letture e scritture con le SC read e write:
Realizzare quindi lo stesso programma del punto, utilizzando invece che SCs le chiamate di libreria fread
fwrite
. Chiamiamo questa versione 'mycp_std'. Confrontare le performance del programma 'mycp_sc' e 'mycp_std' al variare del parametro buffersize (provare un po' di casi: 1 4 8 16 32 ….. 8192).
Esercizio 3
Scrivere un programma C chiamato 'lsdir' che, dato come argomento un nome di directory, visita ricorsivamente tutto il sottoalbero di file e directory che ha come root la directory passata come argomento e stampi sullo standard output le informazioni nel seguente formato:
Directory: <nomedir1> file1 size permessi file2 size permessi ------------------ Directory: <nomedir2> file1 size permessi file2 size permessi ------------------