( lacos | 2024. 05. 07., k – 13:36 )

Ellenpélda: "head -c 0" ;)

Szerk.: kicsit bővebben, a filter()-t úgy akartam megírni, hogy teljesen általános legyen; ne tételezzen fel semmit a filter viselkedéséről. Pl. a "true" is egy filter bizonyos értelemben (végső soron a "head -c 0" egy variációja), és a "printf 'hello world\n'" is az. Én meg akartam engedni teljesen általános filter viselkedést, és az a cél ütközik az olyan heurisztikával, amit felvetsz.

(Egy másik érdekesség, hogy az EPIPE íráskor nem számít végzetesnek vagy igazából hibának sem; egyszerűen annyit jelent, hogy a filter nem kér több adatot (pl. head -c 10). Erre eredetileg nem gondoltam, de aztán eszembe jutott egy tizenévvel ezelőtti beszélgetésem a reddit-ről, és akkor beleraktam az explicit "orig_fifo_broken" kezelést. Meglehetős komplikációt jelentett.)