[英]How to start another program without having to wait on it in C++?
如何讓 C++ 程序啟動另一個程序/進程(特別是 C++)而不等待它結束? (所以system()
在這里不起作用,因為它將另一個程序/進程作為子進程啟動,對嗎?)
我正在考慮在另一個線程或其他東西上啟動第二個程序/進程,但我不確定這是否可行。
謝謝您的幫助。
編輯:運行 linux,抱歉錯過了那個精度......(准確地說是 ubuntu 11.10)
您可以將nohup
與 system() 一起使用。 因此,您調用的 C++ 程序將在后台運行,但您的其他 C++ 程序將從 nohup 獲取退出信號並完成系統調用。 例如:
system("nohup gedit &")
使用fork()
(或clone()
如果您想要線程而不是作業)創建一個 fork,然后在一個進程中使用execve()
或system()
運行程序,並在另一個進程中繼續運行原始程序。
假設您在 Unix/Linux 上執行此操作,您可以使用fork
和exec
的衍生物,其中fork
基本上會通過復制當前進程來創建一個新進程。 然后,您還可以使用wait
或waitpid
等待孩子並檢索其退出狀態。
編輯:該死的人們總是比我發布得更快。 xD
如果它用於 MS Windows,則CreateProcess()是這樣做的方法。 引用: Note that the function returns before the process has finished initialization.
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.