Атомарная запись в сокет unix?

Я пытаюсь выбрать между pipe и сокетами unix для IPC механизм.
Обе поддерживают функции select () и epoll () , и это здорово.

Теперь каналы имеют 4 КБ (на сегодняшний день) "атомарную" запись, что гарантируется ядро Linux.
Существует ли такая функция в случае сокетов unix? Я не смог найти ни одного документа, в котором бы это прямо говорилось.

Допустим, я использую сокет UNIX и записываю x байтов данных от моего клиента. Уверен ли я, что эти x байтов будут записаны на стороне сервера сокета, когда мой сервер select () взломает?

По тому же вопросу, будет ли использование SOCK_DGRAM гарантировать, что запись будет атомарной (если такая возможна гарантия), поскольку дейтаграммы должны быть отдельными четко определенными сообщениями?
В чем тогда будет разница при использовании SOCK_STREAM в качестве режима передачи?

Заранее спасибо.

10
задан Gui13 12 January 2011 в 14:10
поделиться