Linuxには、Pythonスクリプトを介して実行したい実行可能ファイルがあります。実行可能ファイルがゼロ除算され、サブプロセスからのシグナルを処理できないようです。読んでみると、preexec_fnがSIGFPEを処理するはずですが、今のところ運がありません。
Python2.7を使用しています
私のコード:
# b.py
import os
import subprocess
import signal
import sys
def pref_fun():
signal.signal(signal.SIGFPE,foo)
def foo(signal,frame):
print "Caught signal!"
sys.exit(0)
sub = subprocess.Popen(["a.out"], preexec_fn=pref_fun)
sub.wait()
v = sub.returncode
print "value: ", v
と私の子供:
a.c
#include <stdio.h>
#include <stdlib.h>
int main() {
printf("Now dividing by zero\n");
fflush(stdout);
double x = 5;
x= 5/0;
printf("oh no\n");
return 0;
}
期待される出力は「Caughtsignal!」ですが、うまくいかないようです。