Laboratorio Sistemi Operativi 1: 14 Novembre 2007

File e processi

 

Esercizio 1 – operazioni sui file: open,close,read,write -

Scrivere un programma C mytr  che utilizza le chiamate di sistema per i file per

sostituire tutte le occorrenze del carattere “r” con il carattere “v” in un file passato come (primo) argomento.Il file risultante deve essere salvato con il nome passato come secondo argomento.

Se pippo contiene “Il programma funziona perfettamente ” allora  mytr  pippo pluto dovra’ copiare in pluto il testo “Il pvogvamma funziona pevfettamente”. Sovrascrivere il contenuto di pluto nel caso in cui fosse gia presente nel file system.

 

Esercizio 2 – processi: fork/getpid/getppid

Scrivere un programma C per verificare – ad es. utilizzando dei messaggi a video -
che in Unix un processo “orfano” viene adottato dal processo “init”.
Scrivere inoltre un programma che generi un processo zombie (verificare tale evento tramite messaggi a video).

Esercizio 3 – processi: fork/exec /wait/waitpid

Scrivere un programma C che prende come parametri N comandi e li esegue in N diversi sotto-processi generati tramite fork. Fare in modo che il processo padre attenda la terminazione di tutti i figli prima di terminare la propria esecuzione (utilizzare stampe a video per verificare i vari passi).

 

Esercizio 4

Scrivere un programma C per verificare che i file aperti (e quindi la posizione corrente) vengono ereditati dai processi generati tramite fork.