in reply to Reading multiple files one line at a time from arguments

Your approach seems sensible to me.   A production version of such an application would probably handle the “cannot open” case by print STDERR some-message, then by incrementing a count of files that could not be opened.   If, at the end of the loop, this count is non-zero, the program would exit() with some non-zero return code that could easily be checked by a calling script.

The STDERR output-stream is specifically provided for error-message outputs.