2015-05-19 87 views

回答

2

您可以使用tee命令:

$ /path/to/myapp 2>&1 | tee /path/to/file.log 
+0

你應該重定向錯誤輸出到標準輸出,以及此像預期的那樣:/ path/to/myapp 2>&1 | tee /path/to/file.log TL; DR:http://tldp.org/HOWTO/Bash-Prog-Intro-HOWTO-3.html –

+0

@CaioOliveira你是對的 - 我看到輸出並立即精神上跳躍到「標準輸出」。編輯並修復。謝謝! – Mureinik

+0

它適用於斷言和異常,但我沒有看到有關segfault或其他Linux信號的消息。 – Pavel

1

使用DUP2函數重定向STDOUT_FILENO,例如:

fd = open(filename, O_CREAT|O_APPEND|O_WRONLY, 0755); 
close(STDOUT_FILENO); 
dup2(fd, STDOUT_FILENO); 
+0

我想同時輸出到文件和控制檯。您的解決方案從控制檯獲取輸出到文件。 – Pavel

相關問題