在我的應用程序中,os.system用於執行另一個程序。在由os.system執行的應用程序中捕獲運行時錯誤
os.system('./appln')
是否有任何方法可以檢測到正在執行的程序中是否發生運行時錯誤[例如,像SIGSEGV]?
在我的應用程序中,os.system用於執行另一個程序。在由os.system執行的應用程序中捕獲運行時錯誤
os.system('./appln')
是否有任何方法可以檢測到正在執行的程序中是否發生運行時錯誤[例如,像SIGSEGV]?
看看subprocess
模塊,而不是os.system
。 subprocess
模塊有多種方法來捕獲返回代碼或引發非零返回代碼的例外:http://docs.python.org/library/subprocess.html#replacing-os-system
通過檢查os.system調用的返回值,可以檢測程序中的運行時錯誤執行。這question詳細說明了os.system調用的各種返回值。
也就是說,最好遵循@ tweet的回答,並使用子流程模塊來實現相同的效果。
我會去的,但代碼已經寫好,我所能做的就是找到一些我可以用os.system :( – ersran9
@ ersran9:子進程模塊在標準庫中。安裝,你已經擁有它,你只需要轉換代碼。 – Daenyth