我想将程序的输出放入文件中。我键入了以下内容:
./prog > log 2>&1
但“log”文件中没有任何内容。我使用的是Ubuntu 11.10,默认的shell是bash。
有人知道这个的原因以及我如何调试它?
答案 0 :(得分:3)
有很多可能的原因:
log
文件时,程序会读取fflush
文件的输入(请参阅Why doesn't "sort file1 > file1" work?)std::flush
或输出gdb
。最好的办法是在调试器下运行此应用程序(如strace
)或使用ptrace
或{{1}}(或两者),看看程序在做什么。我的意思是,真的,输出重定向工作的最后一次像40年一样,所以问题必须在其他地方。