Get exit code of process that's piped to another
If I pipe the output of one command into another, is there a way for me to check explicitly whether the first command failed?
For example, if
prog processes a file and outputs to STDOUT:
prog file1 | cmp - file2
is there a way to check if
prog explicitly failed or succeeded (by return code)? I want to avoid the use of temporary files, and don't want to rely on the output of the second command; so, for the example above, I want to avoid examining the output of
cmp to determine if
prog failed (if there is no affirmative answer to my question, I'll just fall back to doing precisely that).