Ich schreibe ein Programm für POSIX (OSX), in dem ich viele Prozesse habe, die Nachrichten an einen Listener senden, der im Wesentlichen ein Logging-Thread ist. Alle Prozesse werden in separaten Programmen ausgeführt, und die Verwendung einer einzelnen benannten Pipe (FIFO), in die viele Prozesse schreiben, von der nur ein einzelner Prozess liest, ist sehr verlockend.Gibt es Auswirkungen auf viele Prozesse in einem einzelnen Leser auf einem Named Pipe in Posix schreiben?
Fragen:
1) Funktioniert das? - Ich kann dies mit bash machen, um einen Fifo mit mehreren Prozessen zu erstellen, damit ich weiß, dass das funktioniert. Aber gibt es in der Praxis Probleme, die ich beschönige?
shell # 1
$ mkfifo /tmp/fifo
$ cat /tmp/fifo
Schalen # 2 und # 3
$ cat > /tmp/fifo
"Type stuff here, after hitting enter, it is read by shell #1"
2) Wenn jeder Schriftsteller nur relativ kurze Nachrichten schreibt (< 100 Bytes?) Kann dann gehe ich davon aus, dass jeder Anruf um zu schreiben() wird Wille zum Leser in seiner Gesamtheit gesendet? Oder wird die Hälfte einer Nachricht riskiert, mit der Hälfte einer anderen Nachricht eines anderen Schreibers verstümmelt zu werden?
danke für irgendeinen Rat.
Sie sind willkommen :) – sfossen