This is the mail archive of the cygwin@sources.redhat.com mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: read() returns errno == 1 ("Resource temporarily unavailable")


Christopher Faylor <cgf@redhat.com> writes:

> On Fri, Jan 19, 2001 at 07:52:18PM +0100, Jesper Eskilson wrote:
> >Christopher Faylor <cygwin@cygwin.com> writes:
> >
> >> errno == 1 is not EAGAIN.  I assume that you mean errno == 11.
> >
> >Of course. My fingers slipped.
> >
> >> Looking at the code for _read, the only time this should be returned is if
> >> you are using a non-blocking read.
> >
> >I'm fairly certain that I'm not.
> 
> Well, since I'm fairly certain that the code is pretty clear and since I
> don't recall anyone else reporting this you're either going to have to
> debug this yourself or provide a very simple test case.

I finally gained some wisdom regarding this. The problem was caused when
accessing a file on a filesystem mounted in text-mode (the file-system was
accesses as //<driveletter>/<path>). By explicitly opening the file with
the O_BINARY flag, the problem went away. I thought I read the section on
text vs. binary files in the manual, but apparently I missed the section on
what happens with "//<driveletter>/".

Now, as I don't like leaving bugs behind without fully understanding why
they disappeared, the natural question is: Since the file-descriptor was
not in non-blocking mode, why did read() return EAGAIN not an EOF?

/Jesper
-- 
-------------------------------------------------------------------------
Jesper Eskilson                                         jojo@virtutech.se
Virtutech                                         http://www.virtutech.se
-------------------------------------------------------------------------


--
Want to unsubscribe from this list?
Check out: http://cygwin.com/ml/#unsubscribe-simple


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]