2024-03-29 09:04:07 发布
网友
我使用C++、Python 3.5和Windows 7。我现在使用子进程调用python代码中的C++可执行文件,然后使用下面的代码终止可执行文件:
open = Popen([path\to\exe]) open.terminate()
这似乎不太可能,但是当Python调用终止时,我的C++代码有可能在自己调用一个函数吗?我发现了当用X按钮或自己关闭C++时调用函数的选项,但是这个问题太具体了。你知道吗
p = subprocess.Popen(["path\to\exe"]) #... do stuff #and when you want to terminate it p.terminate()
但是您不能再次调用Popen,因为它将生成另一个实例,这将立即杀死:无用。你知道吗
Popen
当您终止进程时,它会像kill -9或taskkill /F一样在那里停止进程。如果你想给这个过程一个反应的机会,那么就这样做而不是p.terminate()
kill -9
taskkill /F
p.terminate()
仅限Windows:
os.system("taskkill /PID "+str(p.pid))
Unix和Windows(只是读入文档,但没有进行测试):
os.kill(p.pid,signal.CTRL_BREAK_EVENT)
(省略^ {< CD5>}标志允许在C++程序中放置句柄执行一些退出/清理过程,然后退出)
(来源:How can I catch a ctrl-c event? (C++))
但是您不能再次调用
Popen
,因为它将生成另一个实例,这将立即杀死:无用。你知道吗当您终止进程时,它会像
kill -9
或taskkill /F
一样在那里停止进程。如果你想给这个过程一个反应的机会,那么就这样做而不是p.terminate()
仅限Windows:
Unix和Windows(只是读入文档,但没有进行测试):
(省略^ {< CD5>}标志允许在C++程序中放置句柄执行一些退出/清理过程,然后退出)
< >编辑:在C++程序中放置句柄(^ {CD6>},当您调用显式^ {< CD7>},在这种情况下不工作)时调用:< /p>(来源:How can I catch a ctrl-c event? (C++))
相关问题 更多 >
编程相关推荐