Rückgabewert von system () - Funktionsaufruf in C++, verwendet, um führen Sie ein Python-Programm
Ich arbeite auf Linux mit code, macht eine system()
Aufruf zum ausführen eines python-Programms. Ich interessiere mich für den Wert, der zurückgegeben wird, indem Sie diese Funktion aufrufen, um zu verstehen, wie das python-Programm die Ausführung ging.
So weit, ich fand 3 Ergebnisse:
- Wenn Sie den python-Prozess erfolgreich abgeschlossen wurde, Rückgabewert von system() ist 0
- Wenn Sie den python-Prozess wird getötet mid-Ausführung (mit
kill -9 pid
), Rückgabewert von system() ist 9 - Wenn Sie den python-Prozess fehlschlägt, auf seine eigene, durch falsche Parameter, Rückgabewert von system() ist 512
Diese nicht passen mit dem, was ich gelesen habe über system() Funktion.
Außerdem, der code für die python-Programm aufgerufen wird, zeigt, dass es beendet sich mit sys.exit(2)
aus, wenn ein Fehler aufgetreten ist, und sys.exit(0)
wenn die Ausführung erfolgreich abgeschlossen wurde.
Könnte jemand, beziehen sich diese beiden? Bin ich der Interpretation des return-Wert in einer falschen Art und Weise? Gibt es eine Linux-Verarbeitung beteiligt, nimmt das argument der sys.exit()
Funktion des python-Programm und liefert den Wert von system()
basiert auf?
system("/usr/bin/env python /path/to/script");
?system("python progname.py arg1 arg2 arg2");
Python wurde bereits Hinzugefügt-PFADInformationsquelleAutor Shailesh Tainwala | 2012-06-07
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den exit-code des Programms, das Sie aufrufen können abgerufen werden, mit
WEXITSTATUS(status)
wie pro die Handbuch Seite. Siehe auch die manual-Seite fürwait
.Windows hat nicht die gleiche Sache, wenn es um exit-codes, es ist ein POSIX Sache.
InformationsquelleAutor Some programmer dude