使用Main()返回值作为python脚本的参数

问题描述 投票:0回答:1

我希望我的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示例文件”中的值,这是非常值得欢迎的

python c++ return-value popen
1个回答
1
投票

[如果您使用cpp_retval = subprocess.call(...)cpp_retval = subprocesss.run(...).returncodehttps://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)])
© www.soinside.com 2019 - 2024. All rights reserved.