簡體   English   中英

C ++:如何檢查外部程序是否正在運行?

[英]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的資源模塊:

http://docs.python.org/library/resource.html

我只能在Unix上發表評論,因為這是我最了解的平台。

  • p.poll()變為kill(pid, 0)
  • p.terminate()變為kill(pid, SIGTERM)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM