Esercitazione 9
Attenzione: Includere SEMPRE la gestione degli errori (usare le MACRO in sysmacro.h).
Esercizio 1. (pipe senza nome)Realizzare una coppia di processi (padre e figlio) che comunicano attraverso due pipe senza nome (p1 e p2). Il figlio utilizza la pipe p1 per richiedere al padre l'elevamento al quadrato di una sequenza di double. Il padre, appena ricevuto una double x su p1, risponde su p2 con x*x. La sequenza di messaggi usa il protocollo a lunghezza variabile e termina quando il figlio chiude la pipe p1.
Esercizio 2.
(pipe con nome)Realizzare un processo server ed un processo
client. I due processi intergiscono utilizzando due pipe con nome:
clientserver e clientp. Il server legge massaggi sulla pipe
clientserver. Ogni
messaggio è costituito da un double. Per ogni messaggio ricevuto x, il server
calcola x*x e invia il risultato su clientp. La sequenza di
messaggi segue il protocollo a
lunghezza variabile e termina quando il figlio chiude la pipe clientserver. Le
pipe devono essere rimosse dal file system alla terminazione dei due
processi.
Usare la unlink() per rimuovere le pipe.