0

マルチスレッドアプリケーションでは、スレッドごとにstderrとstdoutを別のファイルにリダイレクトするにはどうすればよいですか?

各スレッドで生成されたすべてのprintfおよびエラー/警告メッセージを異なるログファイルに保持する方法をいくつか見てください。

FILE * freopen ( const char * filename, const char * mode, FILE * stream ); 

freopen 関数は、第 3 引数のストリームを第 1 引数のファイル名にリダイレクトします。だから今、マルチスレッドアプリケーションであなたに尋ねたいのですが、freopen() の助けを借りてそれを行うことができます...どのように?

4

1 に答える 1

1

ファイルを含むすべてのリソースはスレッド化されたアプリケーションで共有されるため、変更するstdinstdout、1 つのスレッドですべてのスレッドに対してそれらを変更します。単一のスレッドだけで変更したい場合は、fork代わりに新しいプロセスを作成するために使用してください。

于 2011-10-26T07:24:34.987 に答える