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?

Wie sind Sie mit dem aufrufen des python-Programm? also mit system("/usr/bin/env python /path/to/script");?
system("python progname.py arg1 arg2 arg2"); Python wurde bereits Hinzugefügt-PFAD

InformationsquelleAutor Shailesh Tainwala | 2012-06-07

Schreibe einen Kommentar