ogram exits with status 0 even if no file names are printed, and exits with status 2 if there is an environmental issue.

On usage error (e.g. a bad option was given), the program exits with a status code larger than 2.

The --quiet or -q option suppresses some error warning output, but doesn't change the exit status.