我寫了一個代碼來獲得一個運行時錯誤故意:關於標準輸出/標準錯誤重定向
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