PDA

View Full Version : [C] comunicazione tra processi...


Screwface
17-07-2008, 18:10
Ciao a tutti. Sono nuovo del forum. Stavo cercando di approfondire un po' la mia conoscenza sul C e stavo in particolare cercando di combinare qualcosa con un programmino di questo tipo: un primo processo gestisce l'interazione con l'utente: legge un messaggio da tastiera e visualizza eventuali messaggi anche provenienti da altri processi. Un secondo processo riceve i messaggi inviati dal primo e a seconda di un ID fornito al momento dell'immissione del messaggio, li gira ad uno fra tre processi, che lo memorizza. Al primo processo è possibile anche richiedere di mostrare i messaggi memorizzati da uno dei tre processi. Io avevo iniziato a realizzare lo scambio fra i primi due processi (quello che acquisisce il messaggio e quello che si dovrebbe occupare dello "smistamento"), tramite msgget, msgsnd, msgrcv ecc, con una cosa del genere:

pid = fork();
if (pid == 0)
{
leggi messaggio, invialo alla coda (tipo di messaggio diverso a seconda se inserisco un nuovo msg o richiedo la visualizzazione di quelli vecchi) ecc...
}
else
{
leggi il messaggio dalla coda e indirizzalo al processo opportuno (uno dei tre)
}
waitpid(pid,ecc.);
return(0);

Il tutto però mi pare un po' macchinoso, anche perchè poi dovrei pure mandare i messaggi da uno dei tre processi al secondo e poi al primo... c'è un metodo più semplice per realizzare il tutto?

Scusate ma su queste cose sono proprio alle prime armi...