PDA

View Full Version : Scrivere in tanti in un PIPE


Marco2000
09-05-2003, 18:28
Sto usando C e ho l'esigenza di poter mandare messaggi da N processi "client" ad un processo "server" utilizzando UN solo file pipe, mi chiedevo come fosse possibile evitare che + processi che contemporaneamente provino a scrivere sul pipe ci riescano in modo da garantire una muta esclusione al fine di evitare di avere informazioni inconsistenti.

Grazie mille !

cionci
09-05-2003, 19:05
Con una mutex ? :)

Marco2000
09-05-2003, 19:32
come si implementa una mutex in C ? :D

cionci
09-05-2003, 19:37
Originally posted by "Marco2000"

come si implementa una mutex in C ? :D
Dipende dal sistema operativo... Quale usi ?

Marco2000
09-05-2003, 20:20
Linux

cionci
10-05-2003, 13:36
Dovrebbe esserci semaphores.h...

Purtroppo non posso essere pił preciso... Non ho mai programmato in questo modo con Linux...

mjordan
12-05-2003, 16:48
Non hai bisogno di nessuna mutex. Le mutex si usano per implementare la gestione dei semafori nella sincronizzazione dei processi, ma sincronizzazione di processi a livello kernel, non a livello utente.

Hai parlato di pipe come "file", quindi presumibilmente stai usando una named pipe. Le named pipe hanno la caratteristica di gestire le operazioni read() e write() in modo atomico, quindi non hai bisogno di preoccuparti della loro sincronizzazione. Semplicemente forka quanti processi vuoi e falli leggere e scrivere. E' lo stessa sistema operativo che se ne occupa. Del resto le pipe si usano per avere una forma di IPC, quindi se ti dovessi pure occupare della sincronizzazione, staremmo freschi :D

Marco2000
12-05-2003, 17:40
Buono !

Grazie mille a tutti