我写了一个代码来获得一个运行时错误故意:关于标准输出/标准错误重定向
int main()
{
int a=5;
printf("Hello World\n");
printf("a=%s\n", a);
}
它提供:
$ ./error.o
Hello World
Segmentation Fault
$
现在,记录运行时错误,我做的:
$ ./error.o > so.txt
$ ./error.o &> soe.txt
但这两个文件都是空的。为什么?
编辑:
实际上我正在编写的远程汇编和C程序的执行脚本。从我得到的答案Segmentation Fault
不是程序的错误输出。那么,有没有办法来捕捉那个输出?此外,该程序只是一个示例,所以我不能添加这些语句。线路缓冲可以通过其他方式进行重定向吗?
%s是错误的。 – Nyan 2010-10-29 09:11:45
@Nyan:我这样做是故意得到seg-fault。我正在编写一个脚本来捕获执行错误,所以这只是模仿将来可能对我的脚本的输入。 – lalli 2010-10-29 09:24:47
您编辑了关于如何为重定向文件启用行缓冲的问题。我更新了我的答案以添加信息。 – jjrv 2010-10-29 09:31:39