Я пишу программу для POSIX (OSX), в которой у меня будет много процессов, отправляющих сообщения одному слушателю, который, по сути, является потоком журналирования. Все процессы выполняются в отдельных программах, и очень заманчиво использовать один именованный канал (FIFO), в который много процессов записывают, но читает только один процесс.
Вопросов:
1) Будет ли это работать? - Я могу выполнить эту работу, используя bash, чтобы настроить fifo с несколькими процессами, записывающими в него, поэтому я теоретически знаю, что это работает. Но на практике есть ли проблемы, которые я закрываю?
оболочка # 1
$ mkfifo /tmp/fifo
$ cat /tmp/fifo
снаряды №2 и №3
$ cat > /tmp/fifo
"Type stuff here, after hitting enter, it is read by shell #1"
2) Если каждый писатель пишет только относительно короткие сообщения (‹100 байт?), То могу ли я предположить, что каждый вызов write () будет полностью отправлен читателю? Или половина одного сообщения окажется под угрозой искажения с половиной другого сообщения от другого автора?
спасибо за любой совет.