Subject: grep pattern < fifo fails on Cygwin (and MinGW), but not on Linux

From: Houder <[email-masked]>
Date: Fri, 05 Oct 2018 12:02:47 +0200

Hi,

Yes, I might not be following "procedure" (I do not know), but I decided
to report this failure, because I canNOT ascertain whether "the list" is
aware of this failure or not.

grep fails on Cygwin (and apparently also on MinGW), as follows:

@@ mkfifo fifo
@@ echo X > fifo & grep . < fifo # X may be omitted
[1] <some procid>
grep: (standard input): Invalid argument
[1]+  Done                    echo > fifo

This failure does not occur on Linux.

As far as I can tell, the maintainer of grep on Cygwin, hardly modifies
the source code of grep. Therefore I surmise? that the original tarball
must be in error.

I applied strace to "grep . < fifo", and as far as I can tell "an lseek
is applied to the fifo", which obviously fails.

The "lseek" occurs on Cygwin (and MinGW?), but not on Linux (as far as
I can tell, the code that is executed on Cygwin is not the same as the
one that is executed on Linux).

The failure does not occur if e.g. cut is substituted for grep.

@@ mkfifo fifo
@@ echo X > fifo & cut -f1 < fifo # X may be omitted
No error ...

Q: are you aware of this failure?

Regards,
Henri