2013-08-18 37 views
1

我有一個程序,我想將其輸出重定向到另一個文件。 我嘗試使用標準無法重定向程序的控制檯輸出

foo.exe > out.txt 

這不工作,該文件是空的,但是當我簡單地從CMD運行它,我可以看到所有正常的消息。

我沒有注意到,如果我沒有正確啓動程序,並得到它的使用消息,它確實工作。

我檢查了源代碼(C++),看來print(使用printf)不是來自同一個線程。

任何想法爲什麼會發生這種情況,我該如何解決?

+0

我可能會嘗試:foo.exe 2>&1> out.txt,以防應用程序寫入stderr。或者foo.exe 2> out.txt好的。這不是Linux?然後我幫不了你。 – user2672165

+0

我認爲你最好發佈你的代碼來看看發生了什麼。 –

回答

0

該程序可以用標準錯誤或標準輸出,其默認fd是2和1

只使用 「2> & 1」,這是執行像OUPUT 'DUP2(1,2)'。

2

我設法通過增加

setbuf(stdout,NULL); 

主程序來解決這個問題。

我猜stdout緩衝區沒有沖洗。

相關問題