[comp.unix.internals] filters

tchrist@convex.com (Tom Christiansen) (12/02/90)

There seem to be a lot of filters out there that don't check that their
output succeeded and blindly exit with success irrespective of the
success of their writes.

Cat and col are two utilities I've just caught doing this.  Cat does
make a stab at detecting this, but it does it wrong.  It just checks
ferror(stdout), but it's never done an fflush() or an fclose() first.
Plus it only says "output write error", not what the error is.

My first question I have is what could possible break if cat were to do
an fclose(stdout) at the end (and check the status and set the exit 
accordingly).  

(We know it really needs the fclose and not just fflush because of the
recent EDQUOTA debate, right?)

My second question is whether this is just a symptom of sloppy programming
or whether there's some reason why filters (mis)behave this way.

thanks,

--tom