( lacos | 2024. 05. 05., v – 22:10 )

Így van! Ez is csak egy filter-beli hibának minősül, az pedig elrontja a file-t.

A child-ban egyszerűen nincs olyan pont, ahol pozitív megerősítést tudnál küldeni a szülőnek, hogy "rendben elindítottam az igazi filtert". Ha az execl() meghiúsodik, arról lehet szólni a parent-nek, de ha az execl() sikeres, arról nem -- mert a sikeres execl() után már egy tök általános filter, pl. gzip, fog futni, ami nem fog kommunikálni. Így a szülő sem tud a feldolgozás megkezdése előtt (mondjuk) waitpid()-del ellenőrzést végezni: a hibát éppen megkaphatná, de siker esetén nincs információ.

Ismétlem, ez nem különbözik attól, mintha a gzip-et (mondjuk) -Q kapcsolóval hívnád meg -- az execl() szépen lemenne, de a gzip azonnal kiszállna azzal, hogy "invalid option". Az eredmény ugyanaz: az eredeti file kuka.