read() from pipe guaranteed to provide all atomically written data before EOF?
<p>I'm using a simple <code>fork()</code> parent-child example to have the child generate some data, and <code>write()</code> it for the parent. The child will atomically write less than <code>64kib</code> (65536 bytes) of data atomically to the pipe.</p>

<p>The parent reads from the pipe, and when it receives <code>EOF</code> (ie: assuming that the remote side has been closed), it carries on with some processing logic and closes at its own convenience, and doesn't care how long it takes the child to terminate.</p>

<p>Is the parent guaranteed to be able to read all of the client data that was sent before <code>EOF</code> is encountered, or does any potential OS-level logic kick in to trigger the <code>EOF</code> early before all of the data is read?</p>

<p><a href="https://stackoverflow.com/questions/25446975/is-it-safe-to-read-from-pipe-or-socketpair-with-one-end-closed-till-reaching-eof">I have found a very similar question on SO, but it didn't receive an authoritative/cited answer.</a></p>

<p>Thank you.</p>