Re: [PATCH] stream_to_pack: xread does not guarantee to read all requested bytes
- From
Johannes Sixt <j6t@kdbg.org>
- Date
- Aug 20, 2013, 18:27 UTC
- Message-ID
- <5213B52F.7030205@kdbg.org>
- In-Reply-To
- <CALWbr2yaQaCte6+Y3GEa8Hxyhq6GPS64aTNzkGo8pdpcd9ZVUg@mail.gmail.com>
Am 20.08.2013 17:16, schrieb Antoine Pelisse:
> I was actually wondering when it's better to use xread() over > read_in_full() ? Considering that we don't know if xread() will read > the whole buffer or not, would it not be better to always use > read_in_full() ?
Of course, you know whether the whole buffer was filled: xread() returns the number of bytes read. Same for xwrite().
> I guess there is a drawback to this, but I'm not > exactly sure what it is.
The disadvantage of read_in_full() is that it can happen that it reads data from the stream successfully, but then reports an error. In this case, the data read is lost.
Analogously, when write_in_full() writes (some) data successfully, but ultimately fails, you don't know how much was written successfully.
-- Hannes