[英]C++: how to check whether an external program is running?
我使用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的PS解決方案。
有一個MS知識庫條目,描述了如何徹底終止應用程序。 本質上,如果您只是想TerminateProcess
進程而不關心潛在的副作用,則可以使用TerminateProcess
。
用於檢查進程是否仍在運行的Windows API方法是GetExitCodeProcess
。
如果您可以在操作系統級別而不使用Python解決此問題。 例如,可能會調查
http://devel.ringlet.net/sysutils/timelimit/
或者您可以檢查Python的資源模塊:
我只能在Unix上發表評論,因為這是我最了解的平台。
p.poll()
變為kill(pid, 0)
p.terminate()
變為kill(pid, SIGTERM)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.