В целом, при любой операции ввода-вывода вы не можете делать предположений о том, что произошло после завершения операции write()
, даже после того, как вы close
. Идея delivery
является субъективным понятием относительно среды.
Например, что если writer
представляет собой соединение TCP, а затем данные теряются между клиентом и сервером? Или что, если ядро записывает данные на диск, но диск физически не может записать его? Или, если автор представляет почтового голубя, которого застрелят в пути?
Кроме того, представьте себе случай, когда запись не может подтвердить, что конечная точка получила данные (читай: udp / дейтаграммы). Какой должна быть политика блокировки в этой ситуации?