Ich versuche eine ausführbare Binärdatei auszuführen, die einen Fehler erzeugt. Mein Code für die Ausführung von binären Popen mit:Python-Subprozess Popen gibt einen Fehlercode ungleich Null zurück, aber kein Fehler
p = Popen(cmd, stdout=PIPE, stderr=PIPE, shell=True)
output, error = p.communicate()
return_code = p.returncode
if error:
raise SomeLocallyDefinedError
Dies soll Fehler, wenn die Skriptausführung führt zu einem Fehler erhöhen. Der cmd ist in diesem speziellen Fall der Pfad zu der betroffenen ausführbaren Binärdatei.
Nun, wenn ich ausführen diese sehr binär auf meinem Terminal ./binary_file es mir einen Fehler msg
"Floating Point Ausnahme: 8" gibt.
Aber wenn das Skript von Popen ausgeführt wird, gibt es keinen Fehler sowie die Ausgabe. Aber der Rückkehrcode ist -8. Ich glaube, dass ein Rückgabecode ungleich Null einen Fehler bedeutet, und wenn ja, warum wurde die Nachricht nicht von Popen.communicate() erfasst?
Falls Sie sich fragen, was war die ausführbare Binärdatei. Die Binärdatei wurde durch das Kompilieren einer c-Datei generiert, die zu einem Laufzeitfehler führt. Hier ist der Inhalt der Datei C
# include<stdio.h>
int main(){
int a = 18;
int b = 0;
int c = a/b;
printf("%d", c);
}