E’ dato un file di testo “dati” che contiene una successione di record. Ogni record contiene un valore intero maggiore di 0 ed una stringa, la lunghezza massima delle stringhe è un valore costante MAX. (Ricorda che fscanf legge in modo formattato da file di testo);
Ad esempio il file potrà contenere:
2 aaaaa 3 bbb 1 ttt 2 kkkkk
……..
Scrivere un programma (produttore) che crei una coda di messaggi ed mandi tutto il contenuto del file “dati”
nella coda, utilizzando il valore intero contenuto in ogni record come tipo del messaggio e la stringa come testo del messaggio.
Il programma deve ricevere come argomento un numero intero che rappresenta il numero di processi figli che dovrà generare, nel ciclo di generazione dovrà essere utilizzato un contatore n che ogni figlio utilizzerà come numero progressivo che lo distingue tra i “fratelli”.
Il programma, dopo avere generato i processi figli si metterà in attesa della loro terminazione e provvederà alla eliminazione della coda prima della propria terminazione.
Ogni figlio deve essere inteso come un processo consumatore di tutti i messaggi presenti nella coda che hanno il tipo coincidente con il valore di n del consumatore.
Ogni figlio dovrà scrivere il valore testo dei messaggi ricevuti in un file il cui nome sarà n.txt dove n è il numero identificativo del figlio.