> Btw, what's the difference between pipe-filter-gi and pipe-filter-ii? > Maybe the description field should clarify this?
One uses callbacks for both writes and reads. The interface is very symmetric, and it is basically a wrapper for a select(2) loop (or the equivalent under Windows). The other uses callbacks only for reads, and a regular write(2)-like interface for writes, and it is useful for example if you have a complex control flow to produce the input to the filter, but: 1) what you do with the output is easy (e.g. you may simply want to write it to the console); 2) on the other hand, you do not know when the output will come, so you need to be careful in order to avoid deadlocks. Again, both Windows and POSIX systems are supported.