我希望我的C ++进程传递其返回值以打开python脚本。
cpp示例文件
int main()
{
//do something
//process is going to finish and is gonna return, for simplicity, 0
//retval = 0, or whatever the return value is going to be
popen("mypython_script.py retval")
return 0;
}
mypython_script.py
if __name__ == "__main__":
cpp_retval = sys.argv[1]
print(cpp_retval)
我不知道C ++文件是否有可能如所述发送其返回值,但这只是我想要实现的一般行为。
我还可以控制每个C ++进程的父进程:这是另一个python脚本,负责打开C ++文件并在需要时终止它们的进程,因此,如果您有一个解决方案,涉及使用父进程来获取返回值“ cpp示例文件”中的值,这是非常值得欢迎的
[如果您使用cpp_retval = subprocess.call(...)
或cpp_retval = subprocesss.run(...).returncode
(https://docs.python.org/3/library/subprocess.html)运行C ++程序,则可以从父python脚本捕获C ++程序的返回值。
然后您可以将其传递给其他python脚本。因此,如下所示:
cpp_retval = subprocess.call(["my_cpp_program.exe"])
subprocess.call(["my_python_script.py", str(cpp_retval)])