Re: read() MAX_IO_SIZE bytes, more than SSIZE_MAX?
- From
Joachim Schmitz <jojo@schmitz-digital.de>
- Date
- Feb 7, 2015, 18:36 UTC
- Message-ID
- <loom.20150207T193242-470@post.gmane.org>
- In-Reply-To
- <01f501d04302$bb9a46b0$32ced410$@nexbridge.com>
Randall S. Becker <rsbecker <at> nexbridge.com> writes:
> > On 2015-02-07 13:07PM Randall S. Becker wrote: > >On 2015-02-07 12:30PM Torsten Bögershausen wrote: > >>On 2015-02-07 17.45, Joachim Schmitz wrote:
<spip>
Show 12 quoted lines
> Although I do agree with Jojo, that MAX_IO_SIZE seems to be a platform > constant and should be defined in terms of SSIZE_MAX. So something like: > > #ifndef MAX_IO_SIZE > # ifdef SSIZE_MAX > # define MAX_IO_SIZE (SSIZE_MAX) > # else > # define MAX_IO_SIZE (8*1024*1024) > # endif > #endif > > would be desirable.
It would be way too large on some platforms. those 8MB had been chosen for a good reason, I assume:
/* * Limit size of IO chunks, because huge chunks only cause pain. OS X * 64-bit is buggy, returning EINVAL if len >= INT_MAX; and even in * the absence of bugs, large chunks can result in bad latencies when * you decide to kill the process. */
However it should never be larger than SSIZE_MAX