つまり、両方のストリームをコンソールに表示しますが、何らかの形で互いに区別します。
通常、どの行が stderr であり、通常の出力と混合されているのかわからないということです。それをファイルにリダイレクトすると、通常の出力に関していつエラーが発生したのかわかりません。したがって、stderr から来るすべての行に、たとえば次のような最初の文字列のようなインジケータがあるようにする方法はありますか?
c:\>command.exe
normal output
normal output
normal output
stderr: error message
normal output
stderr: error message
normal output
これは、大量の情報を吐き出し、これら 2 つのストリームを混合するコンパイラ/make で特に問題になります。UNIX を使用して特定の文字列をテキストのすべての行の前に追加できることsed
は知っていますが、メイン プログラムとの関係でそれを使用する方法がわかりません。2 つのストリームを結合すると、文字列がすべての行の先頭に追加されます。stderr をファイルにリダイレクトすると、コンソールに表示されず、stdout からコンテキストから外れます。