我如何使用freopen()重定向stdout&多线程应用程序中的线程vise日志文件中的stdin?

时间:2011-10-26 07:19:58

标签: c linux multithreading logfiles freopen

来自In multi thread application how can i redirect stderr & stdout in separate file as per thread?

的问题

请参阅一些我希望如何在每个线程中生成的所有printf和错误/警告消息保存在不同的日志文件中。

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

freopen函数将第三个参数流重定向到第一个参数文件名。所以现在我想问你多个应用程序我可以在freopen()的帮助下做到这一点......怎么样?

1 个答案:

答案 0 :(得分:1)

由于所有资源都在线程应用程序(包括文件)中共享,因此在一个线程中更改stdinstdout会为所有线程更改它们。如果您只想在一个线程中更改它,请使用fork来创建一个新流程。