Sha*_*ala 9 c++ python linux system
我正在Linux上使用代码来system()
调用运行python程序.我对这个函数调用返回的值感兴趣,以了解python程序执行的方式.
到目前为止,我找到了3个结果:
当python进程成功完成时,system()返回的值为0
当python进程在执行中(使用kill -9 pid
)被终止时,system()返回的值为9
当python进程因参数不正确而自行失败时,system()返回的值为512
这与我读过的关于system()函数的内容不符.
此外,被调用的python程序的代码显示它sys.exit(2)
在遇到任何错误时以及sys.exit(0)
执行成功完成时退出.
谁能说这两个人?我是以错误的方式解释返回值吗?是否涉及一些Linux处理,它接受sys.exit()
python程序函数的参数并返回system()
基于它的值?
Som*_*ude 14
调用程序的退出代码可以被取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";
}
Run Code Online (Sandbox Code Playgroud)