私は疑問に思っていました、詰まりのポイントは何ですか?私が知る限り、clog は cerr と同じですが、バッファリングがあるため、より効率的です。通常、stderr は stdout と同じなので、clog は cout と同じです。これは私にはかなり不自由に思えるので、誤解しているに違いないと思います。エラーメッセージが出力されているのと同じ場所にログメッセージが出力されている場合 (おそらく /var/log/messages 内の何か)、おそらくあまり多くを書き出していません (したがって、non を使用してもあまり失われません)。 -buffered cerr)。私の経験では、クラッシュを見つけるのに役立つように (バッファリングされていない) ログメッセージを最新の状態にしたい (そのため、バッファリングされた clog を使用したくない)。どうやら私は常に cerr を使用する必要があります。
プログラム内で clog をリダイレクトできるようにしたいと考えています。ライブラリ ルーチンを呼び出すときに、cerr と clog の移動先を制御できるように、cerr をリダイレクトすると便利です。一部のコンパイラはこれをサポートできますか? DJGPP を確認したところ、stdout は FILE 構造体のアドレスとして定義されているため、「stdout = freopen(...)」のようなことを行うのは違法です。
- clog、cerr、cout、stdin、stdout、および/または stderr をリダイレクトすることは可能ですか?
- clog と cerr の唯一の違いはバッファリングですか?
- より堅牢なログ機能を実装 (または検索) するにはどうすればよいですか (リンクをお願いします)。