我有一個可以在命令提示符下啓動的c程序。 在我的另一個c程序中,我可以用這個應用程序吃午餐嗎? 如果是,如何?所有谷歌的結果告訴我如何使用pthread做到這一點?這會工作嗎? 我懷疑我需要一個新的程序用於我的c程序。如何從另一個c程序啓動c程序
謝謝。
我有一個可以在命令提示符下啓動的c程序。 在我的另一個c程序中,我可以用這個應用程序吃午餐嗎? 如果是,如何?所有谷歌的結果告訴我如何使用pthread做到這一點?這會工作嗎? 我懷疑我需要一個新的程序用於我的c程序。如何從另一個c程序啓動c程序
謝謝。
它是系統的具體,但一般execve
或類似的東西,並總有system("/path/to/program");
,您可以使用特定的
請記住'system()'分叉兩次* - 它的參數被傳遞給shell/command解釋器。 – 2010-03-11 20:13:32
你看着使用fork()
和exec()
,這也是系統? Fork將分割一個進程,exec讓你從一個例子中啓動一個新程序,該例程是fork
'd。
首先擊中谷歌:
http://www.yolinux.com/TUTORIALS/ForkExecProcesses.html
正如其他人所說,細節可能取決於你使用的是什麼操作系統而有所不同。
除了明確的fork
/exec
和system
之外,還有popen
。 (所有在一個unixish環境)。
如果您更清楚地瞭解您的操作環境是什麼以及您需要如何與女兒進程交互,您會得到更好的幫助。
CreateProcess函數是在Windows中的方法。
您可以使用system()函數從字面上對控制檯發出命令,但我不記得它是否阻塞。
For linux look into execv。 This page有一個linux的父母啓動子應用程序的例子在linux中包括一個通信管道之間的兩個..
此外,execve將通過可執行文件名啓動。
你想在Windows或Linux中做到這一點? – 2010-03-11 19:48:01
我在Linux上嘗試這個(Ubuntu 9.10)。所以fork()比system()更有效率?由於用戶評論系統fork()兩次? – michael 2010-03-11 21:03:00