Sto scrivendo un programma per POSIX (OSX) in cui avrò molti processi che inviano messaggi a un listener, che è essenzialmente un thread di registrazione. Tutti i processi sono in esecuzione in programmi separati e utilizzano una singola named pipe (FIFO) a cui molti processi scrivono, ma solo un singolo processo di lettura è molto allettante.Ci sono ripercussioni sull'avere molti processi scritti su un singolo lettore su una named pipe in posix?
domande:
1) Funzionerà? - Posso farlo funzionare usando bash per configurare un fifo con più processi di scrittura, quindi so che in teoria funziona. Ma in pratica, ci sono problemi su cui sto sorvolando?
shell # 1
$ mkfifo /tmp/fifo
$ cat /tmp/fifo
conchiglie # 2 e # 3
$ cat > /tmp/fifo
"Type stuff here, after hitting enter, it is read by shell #1"
2) Se ciascuno scrittore scrive solo i messaggi relativamente brevi (< 100 byte?) Quindi posso supporre che ogni chiamata scrivere() sarà inviato al lettore nella sua interezza? O metà di un messaggio rischia di essere confuso con metà di un altro messaggio da un altro autore?
grazie per qualsiasi consiglio.
sei il benvenuto :) – sfossen