Например, я создал именованный канал, как показано ниже:
mknod myPipe p
И я читаю из него какой-то процесс (например, какой-то сервер). В качестве примера я использовал tail:
tail -f myPipe
Если несколько клиентских процессов записывают в него несколько сообщений (например echo "msg" >> myPipe
, есть ли вероятность, что сообщения будут чередоваться, например так:
<beginning of message1><message2><ending of message1>
Или процесс записи в именованный канал атомарный?
setvbuf(stdout, NULL, _IOLBF,512)
) сделает это без необходимости использования низкоуровневых функций.PIPE_BUF
значений в распространенных системах Unix: ar.to/notes/posix#pipe-buf