Le pipe sono orientate al byte. Questo significa che non hanno nessun modo di distinguere i ``messaggi''. Se faccio 10 write da un byte oppure se ne faccio una da 10 byte, è esattamente lo stesso, per il lettore non cambia niente.
Come fare allora per passare dei parametri a lunghezza variabile? Se per esempio devo mettere sulla pipe una stringa di cui non so a priori la lunghezza, come faccio a dire al lettore di quanti bytes e' composta la stringa??
Ci sono 3 modi:
Useremo l'ultima tecnica per trasferire dati fra padre e figlio tramite una pipe.
Esercizio: Scrivere un programma che accetti in ingresso il nome di un file. Il padre crea due pipe, una per comunicare il nome del file al figlio, l'altra per ricevere il file.
Il figlio, si mette in attesa sulla pipe e legge il nome del file. Dopodichè invoca il comando ``cat'' per farsi dare il contenuto del file.
Il padre si mette in attesa del file sulla pipe e lo stampa a video.
Soluzione: