2011-10-26 9 views
0

Extened questions from In multi thread application how can i redirect stderr & stdout in separate file as per thread?freopen()を使用して、マルチスレッドアプリケーションのスレッドバイスログファイルでstdoutとstdinをリダイレクトできますか?

どのように私はすべてのprintfとエラー/警告メッセージを別のログファイルの各スレッドで作成しておきたいのかを見てください。

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

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

答えて

1

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

関連する問題