- ssize_t result;
-
- /* POSIX limits COUNT to SSIZE_MAX, but we limit it further, requiring
- that COUNT <= INT_MAX, to avoid triggering a bug in Tru64 5.1.
- When decreasing COUNT, keep the file pointer block-aligned.
- Note that in any case, read may succeed, yet read fewer than COUNT
- bytes, so the caller must be prepared to handle partial results. */
- if (count > INT_MAX)
- count = INT_MAX & ~8191;
+ /* Work around a bug in Tru64 5.1. Attempting to read more than
+ INT_MAX bytes fails with errno == EINVAL. See
+ <http://lists.gnu.org/archive/html/bug-gnu-utils/2002-04/msg00010.html>.
+ When decreasing COUNT, keep it block-aligned. */
+ enum { BUGGY_READ_MAXIMUM = INT_MAX & ~8191 };