Fri Sep 1 23:15:00 GMT 2006
On Fri, Sep 01, 2006 at 05:07:49PM -0500, Gary R. Van Sickle wrote:
>> From: Christopher Faylor
>> Sent: Friday, September 01, 2006 1:01 PM
>> Subject: Re: cygwin fork()
>> On Fri, Sep 01, 2006 at 06:57:10PM +0100, Dave Korn wrote:
>> >On 01 September 2006 18:47, clayne wrote:
>> >>I found the real culprit, which I had also ifdef'd out because it
>> >>looked bogus and crufty:
>> >>/* Return 1 if a seek on FD will succeed. */ #ifndef __CYGWIN__ #
>> >>define fd_is_seekable(fd) (lseek ((fd), 0L, SEEK_CUR) >= 0)
>> #else #
>> >>define fd_is_seekable(fd) 0 #endif /* __CYGWIN__ */
>> >Yeeesh. This is a terrible way of dealing with the fact
>> that you can't
>> >seek a stream accurately if you open it in text mode, because of the
>> >ambiguity about whether you've advanced one or two chars through the
>> >underlying file when you see an LF that could perhaps have actually
>> >been a CR/LF. What we really want is
>> AFAIK, Cygwin's lseek should handle seeking on text streams.
>> DJ implemented that years ago.
>Last I looked, which was admittedly also years ago, it was "#if 0"'ed out,
>with a comment to the effect of "Nobody has any business seeking around in
AFAIK, lseek is supposed to work. There was some old pre-DJ code which
I believe was ifdef'ed out up until around 2002 when Corinna introduced
However, I'm sure there are probably corner cases where it breaks down.
However, determining the position in a file using lseek and then seeking
to that position later should work ok.
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Problem reports: http://cygwin.com/problems.html
More information about the Cygwin