Hi, On Tue 19 Feb 2013 22:25, Paul Eggert <egg...@cs.ucla.edu> writes:
> On 02/19/13 13:15, Eli Zaretskii wrote: >> if (full_read (fd, cookie, sizeof cookie) != sizeof cookie >> || full_read (fd, SCM_BYTEVECTOR_CONTENTS (bv), >> SCM_BYTEVECTOR_LENGTH (bv)) != SCM_BYTEVECTOR_LENGTH (bv)) >> { >> int errno_save = errno; >> (void) close (fd); >> errno = errno_save; >> SCM_SYSERROR; >> } >> > ... >> If the file is too short for these two reads, then errno will have >> some random value (because full_read "succeeded" as far as that >> function is concerned), and the error message in SCM_SYSERROR will >> display something utterly unrelated > > Yes, full_read should return a short value and set errno to 0, > so errno_save should be zero. If SCM_SYSERROR displays > a seemingly-unrelated diagnostic like "Error 0", that would > explain the problem. > >> I think it's a Guile >> problem, since from gnulib POV, nothing went wrong in that call. > > Yes, that sounds right. You are both right, yes. Thanks for the help and sorry for the confusion. Cheers, Andy -- http://wingolog.org/