-
Nils Goroll authored
Any real-world object will exceed the pipe buffer in size. Unless the filter program which we invoke implemented an infinite buffer (and requiring something like this would miss the point of stream processing), we can only write to the program as much data as it accepts for its input buffering (plus the pipe buffer size), before we need to read its output. Thus, we need to ensure that write(fds[STDIN_FILENO].fd) does not block.