python - C++:如何检查外部程序是否正在运行?

标签 python c++ windows external-process process-management

我用 C++ 运行一个外部程序:

_wsystem(exec);

如果进程运行超过 n 秒,我想终止它。我可以在 Python 中这样做:

p = subprocess.Popen(self.temp_exec, shell=True)

cur_time = 0.0

while cur_time < self.time_limit:
            if p.poll() != None:
                # Kill the process
                                    p.terminate()
                break
            time.sleep(0.1)
            cur_time += 0.1

在 C++ 中,p.poll() 和 p.terminate() 的替代方案是什么?

谢谢

附言也欢迎涉及 WinAPI 的解决方案。

最佳答案

有一个MS knowledge base entry描述如何干净地终止应用程序。本质上,如果您只想终止进程而不关心潜在的副作用,那么您可以使用 TerminateProcess

检查进程是否仍在运行的 Windows API 方法是 GetExitCodeProcess

关于python - C++:如何检查外部程序是否正在运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5482447/

相关文章:

java - servlet 上下文初始化时无法启动批处理脚本

python - QTableView 选择改变

c++ - Windows 鼠标速度是非线性的——如何转换为线性刻度?

c++ - c++ typedef std::function<> 如何使用?

c++ - 分配数组与初始化指针

对正在运行的程序的 Windows URL 方案调用

python - 在 Paramiko 应用程序中将 key 作为字符串嵌入

python - win32com winhttp post 请求文件

Python 可迭代和上下文管理器

django - Windows 上的最小生产 Django 服务器