2011-06-01 53 views
3

我得到一个段错误的错误消息在终端运行该命令后outputing一个文件:重定向段错误的错误消息从一个C++程序

bash-3.2$ a.out < testfiles/inputs/tst1.txt 2> err.txt 
    [2]+ Done     gedit err.txt 
    Segmentation fault 

a.out的只是运行的排序算法。

现在我的问题是如何将Seg错误错误消息重定向到err.txt文件中。

使用2>或其他变种似乎不起作用。

在此先感谢。

回答

0

使用重定向,你不能。它不是程序的输出,而是运行程序的程序的输出。无论如何,重定向它通常是一个坏主意。

0

这工作:

 
$ { ./a.out; } 2> err.txt 
+0

我没有在bash脚本这样的成功。 – 2013-02-22 07:20:55

+0

@Evan Hmmm。它适用于我(bash 3.2.48和Darwin 10.8.0)今天晚些时候我会尝试其他一些机器。你的平台是什么?试试'{sh -c'./a.out'; } 2> err.txt' – 2013-02-22 12:09:30

+0

这将是很好,如果这还包括其他消息。我试过'{./a &>log;}&>> log',那没有用。 – 2015-08-24 11:41:46