Возвращаемое значение вызова системной ()функции в C++, используемой для запуска программы Python

Я работаю над Linux с кодом, который вызывает system()для запуска программы на Python. Меня интересует значение, возвращаемое этим вызовом функции, чтобы понять, как прошло выполнение программы на Python.

На данный момент я нашел 3 результата:

  • Когда процесс Python завершается успешно, значение, возвращаемое системой (), равно 0

  • . Когда процесс python завершается в середине -выполнения (с использованиемkill -9 pid), значение, возвращаемое системой (), равно 9

  • Когда процесс python дает сбой сам по себе из-за неправильных параметров, значение, возвращаемое системой (), равно 512

. Это не соответствует тому, что я читал о системе (). функция.

Кроме того, код вызываемой программы Python показывает, что она завершается с sys.exit(2)при обнаружении какой-либо ошибки и sys.exit(0)при успешном завершении выполнения.

Может ли кто-нибудь связать эти два? Я неправильно интерпретирую возвращаемое значение? Задействована ли какая-то обработка Linux, которая принимает аргумент функции sys.exit()программы python и возвращает значение system()на его основе?

9
задан Shailesh Tainwala 7 June 2012 в 11:44
поделиться