2015-01-21 60 views

回答

1

在Windows進程的關係是非常。沒有SIGCHLD。沒有必要的分離終端以避免SIGHUP死亡。實際上,父進程只是很重要,因爲一堆環境內容可以自動複製到孩子身上。

您可能希望查看是在新進程組中啓動進程還是附加到新作業對象。請參閱CREATE_NEW_PROCESS_GROUP標誌。

1

一個選項是調用system()命令。這可以在<cstdlib>(又名<stdlib.h>)中找到。

例子:

#include <stdlib.h> 

int main(int argc, char *argv[]){ 
    // Open the Window's Calculator: 
    system("C:/Windows/system32/calc.exe"); 
    return 0; 
} 

你可以通過任何命令你想爲system()參數(假設你有必要執行該命令的權限)。

這也適用於Linux/Unix系統。


編輯:實現來電system()之前,你可能想看看this write-up一下。有些人認爲使用system()是不安全/不好的做法。但是,對於推出一個不相關的節目,我個人認爲system()是一個很好的解決方案。

在使用您的命令調用它之前,確保system()可用也很好。在某些系統上,可能不允許生成shell /命令提示符。要檢查這一點,您可以執行以下操作:

if(system(NULL)){ 
    // spawning a shell is allowed 
    system(commandToExecute); 
    return 0; 
}else{ 
    // spawning a shell is prohibited 
    return ERROR_NO_SHELL; 
}