用C ++返回system()函数调用的值,用来运行一个Python程序

我正在使用Linux的代码,使system()调用运行一个Python程序。 我感兴趣的是这个函数调用返回的值,以了解如何执行python程序。

到目前为止,我已经find了3个结果:

这不符合我所读到的有关system()函数的内容。

此外,被调用的python程序的代码显示,当遇到任何错误时,它将以sys.exit(2)退出,并且在执行成功时执行sys.exit(0)

有谁能把这两个关联起来 我是否以错误的方式解释了回报价值? 是否有一些Linux处理涉及python程序的sys.exit()函数的参数,并返回基于它的system()的值?

您调用的程序的退出代码可以通过WEXITSTATUS(status)按手册页获取 。 另请参阅手册页的wait

 int status = system("/path/to/my/program"); if (status < 0) std::cout << "Error: " << strerror(errno) << '\n'; else { if (WIFEXITED(status)) std::cout << "Program returned normally, exit code " << WEXITSTATUS(status) << '\n'; else std::cout << "Program exited abnormaly\n"; }