重定向不起作用
我想将程序的输出放入文件中。我输入了以下内容:
./prog > log 2>&1
但是文件“log”中没有任何内容。我使用的是 Ubuntu 11.10,默认 shell 是 bash。
有人知道这个的原因以及我如何调试这个吗?
I want to put my program's output into a file. I keyed in the following :
./prog > log 2>&1
But there is nothing in the file "log". I am using the Ubuntu 11.10 and the default shell is bash.
Anybody know the cause of this AND how I can debug this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
可能的原因有很多:
log
文件中读取输入(请参阅 为什么“排序 file1 > file1”不起作用?)fflush
或输出std::flush
。最好的选择是在调试器(例如 gdb)下运行此应用程序或使用 strace 或 ptrace(或两者)并查看程序的内容正在做。我的意思是,实际上,输出重定向在过去 40 年里一直有效,所以问题一定出在其他地方。
There are many possible causes:
log
file while you try to redirect into it with truncation (see Why doesn't "sort file1 > file1" work?)fflush
or outputstd::flush
if using C++ I/O stream etc.Your best bet is to run this application under a debugger (like
gdb
) or usestrace
orptrace
(or both) and see what the program is doing. I mean, really, output redirection works for the last like 40 years, so the problem must be somewhere else.