On 10/8/18 12:35 AM, Houder wrote:
grep terminates with an error on Cygwin because lseek() on Cygwin fails to ascertain that it is applied to a FIFO.
That sounds like a bug in Cygwin, then. Can you find out exactly why it occurs, by using GDB within Cygwin? Then you can file a bug report with the Cygwin folks.
Possibly the bug is something like the following: grep calls lseek (fd, 0, SEEK_CUR). The Cygwin lseek implementation asks MS-Windows what the file offset is, gets an error because the file descriptor is that of a pipe, and somehow turns that into EINVAL. Cygwin should turn it into ESPIPE instead.