2014-02-27 34 views
0

我正在編寫一個編譯並運行C/C++代碼的python腳本。 我想捕獲運行時錯誤。 例如:Nzecv,分割故障,分段錯誤等捕捉RUNTIME由子進程模塊的python的POPEN函數執行的可執行文件的錯誤

我使用下面的命令來執行編譯的文件:

process = Popen(exec_path , stdin=PIPE, stdout=PIPE, stderr=PIPE, shell= False) 
(output, error) = process.communicate(testCase) 

我試圖與運行時錯誤幾個項目,但錯誤的arent體現在stderr。 經過一番研究,我發現stderr從讀取程序的返回值。 而在C和大多數其他所有程序中,主返回自定義(「返回0;」)值不是錯誤信號。

是否有可能catch運行時錯誤信號?我應該如何去實施它?

編輯:終端可以捕獲運行時錯誤信號嗎?怎麼樣? 如果是,則通過python運行相應的shell腳本。

回答