捕获python执行的可执行文件的运行时错误';s子流程模块的POPEN函数

捕获python执行的可执行文件的运行时错误';s子流程模块的POPEN函数,python,shell,runtime-error,subprocess,stderr,Python,Shell,Runtime Error,Subprocess,Stderr,我正在编写一个python脚本,它编译并运行C/C++代码。 我想捕获运行时错误。 例如:Nzecv、分段错误、分段错误等 我正在使用以下命令执行编译后的文件: process = Popen( exec_path , stdin=PIPE, stdout=PIPE, stderr=PIPE, shell= False) (output, error) = process.communicate(testCase) 我尝试过几个有运行时错误的程序,但是这些错误没有反映在stderr中。 经过

我正在编写一个python脚本,它编译并运行C/C++代码。 我想捕获运行时错误。 例如:Nzecv、分段错误、分段错误等

我正在使用以下命令执行编译后的文件:

process = Popen( exec_path , stdin=PIPE, stdout=PIPE, stderr=PIPE, shell= False) 
(output, error) = process.communicate(testCase)
我尝试过几个有运行时错误的程序,但是这些错误没有反映在stderr中。 经过一些研究,我发现stderr读取程序的返回值。 在C和大多数其他程序中,main返回自定义(“return0;”)值,而不是错误信号

是否有可能捕获运行时错误信号?我应该如何实现它

编辑:终端能否捕获运行时错误信号?怎样? 如果是,我将通过python运行相应的shell脚本

是否有可能捕捉到运行时错误信号?我应该如何着手实施它

要查明子进程是否被信号终止,可以检查:

负值-N表示子级被信号终止 N(仅限Unix)

注意:如果要为子进程中的信号提供自定义处理程序,可以在
preexec\u fn
中调用
signal.signal()