Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 子流程的preexec_fn中的信号处理。Popen不工作_Python_Signals - Fatal编程技术网

Python 子流程的preexec_fn中的信号处理。Popen不工作

Python 子流程的preexec_fn中的信号处理。Popen不工作,python,signals,Python,Signals,我试图处理使用subprocess.Popen(…,preexec_fn=…)执行的子进程的信号 根据preexec_fn是在子进程中运行的,因此理论上,以下两个程序的行为应该是相同的,第一个程序处理嵌入式c代码内部的信号,第二个程序通过python函数处理外部的信号 然而,通过检查退出代码是否为0,我发现只有c代码内部的处理才有效。有人知道为什么python中的信号处理不起作用吗 谢谢 从内部处理,使用0退出: 从tempfile导入临时目录 导入子流程 输入信号 导入操作系统 c_代码=”“

我试图处理使用
subprocess.Popen(…,preexec_fn=…)
执行的子进程的信号

根据preexec_fn是在子进程中运行的,因此理论上,以下两个程序的行为应该是相同的,第一个程序处理嵌入式c代码内部的信号,第二个程序通过python函数处理外部的信号

然而,通过检查退出代码是否为0,我发现只有c代码内部的处理才有效。有人知道为什么python中的信号处理不起作用吗

谢谢

从内部处理,使用0退出:

从tempfile导入临时目录
导入子流程
输入信号
导入操作系统
c_代码=”“
#包括
#包括
#包括
int main(){
std::signal(SIGFPE,[](int){std::quick_exit(0);});//在这里处理信号
标准::cout