我有以下C ++代码
...
int res = system("python myscript.py");
if(res != 0){
cerr << "Exit code was:" << res << endl;
}
python脚本文件以
结尾print "This will exit with code 0"
sys.exit(0)
如果我直接运行python脚本,我会得到正确的退出代码(0)。但是,如果我通过c ++应用程序运行它,res为-1,即使正确打印了“这将以代码0退出”这一行。
奇怪的是,如果我将调用移动到C ++应用程序的执行开始,系统调用返回到python的退出代码是正确的。
一路上会导致它变得“错误”的是什么?
编辑:
在问题周围添加一些调试“cout”信息后......它消失了。看起来我有一个Heisenbug。
答案 0 :(得分:2)
您确定脚本正在运行吗?
尝试
...
int res = system("/usr/bin/python /path/to/myscript.py");
if(res != 0){
cerr << "Exit code was:" << res << endl;
}