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.