Bash uses lseek while reading from serial device

Corinna Vinschen
Tue Aug 19 08:35:00 GMT 2014

On Aug 18 22:39, Ross Ridge wrote:
> Corinna Vinschen writes:
> > On Linux isatty on a descriptor connected to serial line returns 0,
> > on Cygwin it returned 1 so far.  I fixed both problems here, isatty
> > on a serial line returns 0 now, and lseek on serial (and, FWIW,
> > sockets) don't simply return 0 anymore, but rather -1 with errno set
> > to ESPIPE, as on Linux.
> I'm not sure if Chet Ramey's suggestion that if isatty() returns 1
> then bash is allowed to assume reads are newline-delimited is correct.
> On Unix this would only be true if cannonical mode input processing was
> enabled (icanon), and Cygwin stty reports that this mode is disabled
> (-icanon) on serial devices.  Or at least it used to, with the snapshot
> DLL it now complains "/dev/ttyS0: Inappropriate ioctl for device".
> For what its worth my tests on Linux shows that isatty() returns 1 on
> a serial device, namely /dev/ttyS0.  Which is what I would expect given
> that serial devices have traditionally been synonymous with ttys on Unix.

I reverted this part of the patch.  My test was flawed.  The problem is
that on Linux, /dev/ttyS[0-3] exists even if they are not backed by
hardware.  In this case, as is on my local machine, isatty returns 0.
However, if there's a device connected to /dev/ttySx, isatty returns 1.

So I just applied a patch which reverts the isatty status to /dev/ttySx
and thus, stty works as before.

> > Ross, please give it a try.
> The snapshot DLL solves the bug and the script runs without any data
> being lost.  Thanks for looking into this.

Thanks for testing and discussing this problem.


Corinna Vinschen                  Please, send mails regarding Cygwin to
Cygwin Maintainer                 cygwin AT cygwin DOT com
Red Hat
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 819 bytes
Desc: not available
URL: <>

More information about the Cygwin mailing list