Indice

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 Unix 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 (se non specificato assegnare un valore di default, es. 256bytes): Realizzare quindi lo stesso programma, utilizzando le chiamate di libreria fread ed fwrite. Chiamiamo questa seconda versione 'mycp_std'. Confrontare le performance (usando il comando time) del programma 'mycp_sc' e 'mycp_std' al variare del parametro 'buffersize' (provare un po' di casi: 1 4 8 16 32 ….. 8192). Che cosa si nota ?

Opzionale (homework) : scrivere uno script bash che lanciato da una regola del makefile esegue mycp_sc e mycp_std scrivendo i risultati in due file separati. Plottare i dati dello 'user' e 'sys' time con gnuplot.