C 与标准输出流关联的文件

C 与标准输出流关联的文件,c,windows,freopen,C,Windows,Freopen,我有一个很长的多线程应用程序,我不能在这里添加这些代码。我从主程序中调用 freopen ("uniq_name",w+,stdout) 之后,不同的线程开始运行。其中一些线程开始写入标准输出。 它们中的一些会向stderr写入数据(也可能被重定向)。在对uniq\u name运行了多次成功的打印后,我突然看到屏幕上出现了打印,我希望这些打印应该转到uniq\u name文件。在屏幕上意外地进行了如此多的随机打印之后,我再次看到对uniq\u name文件进行了打印。 在Win7和Linux上

我有一个很长的多线程应用程序,我不能在这里添加这些代码。我从主程序中调用

freopen ("uniq_name",w+,stdout)
之后,不同的线程开始运行。其中一些线程开始写入标准输出。 它们中的一些会向stderr写入数据(也可能被重定向)。在对
uniq\u name
运行了多次成功的打印后,我突然看到屏幕上出现了打印,我希望这些打印应该转到
uniq\u name
文件。在屏幕上意外地进行了如此多的随机打印之后,我再次看到对
uniq\u name
文件进行了打印。 在Win7和Linux上工作正常-在Win8上出现故障。
我对任何想法都感兴趣(甚至是理论上的)-这可能是什么原因

你也对stderr感兴趣吗?线程是否手动打开一个
tty
?您真的应该说更多(例如,您的操作系统是什么),并显示更多代码以获得真正的帮助。而且
freopen
-ing stdout可能不是个好主意…@cnicutar-你也有freopen stderr吗?-看起来是的,因为我可以看到对文件*的写入,该文件的_FILE=4。但我不确定我没有所有线程的代码。这些线程是否手动打开tty?-我不知道该如何检查,因为正如我以前写的那样,我没有所有的代码threads@BasileStarynkevitch-Win 8,在Win7和Linux中运行良好。我无法添加更多代码,我需要使用freopen,因为线程会写入标准输出,我需要收集它们的代码printings@Basile斯塔林克维奇,@cnicutar——我甚至对理论想法感兴趣——只是想从哪里开始并挖掘代码