Paul Eggert wrote:
POSIX says that short reads are allowed only near end-of-file,
or when signals arrive, or for pipes, FIFOs, and special files.
They are not allowed while reading in the middle of a regular file,
Weren't GNU programs supposed to be free from such limitations[1]? For
example GNU ddrescue will accept any number of short reads anywhere in
the input file.
[1]http://www.gnu.org/prep/standards/html_node/Non_002dGNU-Standards.html
"The GNU Project regards standards published by other organizations as
suggestions, not orders. We consider those standards, but we do not
"obey" them. In developing a GNU program, you should implement an
outside standard's specifications when that makes the GNU system better
overall in an objective sense. When it doesn't, you shouldn't."