Actually, how about detecting this and diagnosing
the problem rather than falling into the infloop?

This currently evokes an infloop for me:

     $ seq 1000000>  k
     $ grep 111 k>>  k

However, simply detecting when the output FD is also an input FD is
not enough, since this variant does not get stuck:

     $ seq 1000>  k
     $ grep 111 k>>  k

Whether it gets stuck is mainly a function of the buffer size for the file. Certainly whatever is added at the end of "k" matches, so it will be added over and over.

This is a problem for every Unix utility that reads files sequentially (e.g. sed or, from coreutils, cut, cat, fmt, tail, comm).

Paolo


Reply via email to