2011-06-25 45 views
-8

我正在用C(而不是C++)在Mac上編寫代碼。我希望能夠從C運行UNIX可執行文件,像這樣:在C代碼中運行可執行文件

#include <some-wacky-header.h> 

int main (int argc, char * argv[]) 
{ 
    int r = some_wacky_executable_run(path_to_my_file_as_char_array); 
    return 0; 
} 

注意:我不想用system()命令來運行可執行文件。

+9

*爲什麼*你不想使用'system()'? – thkala

+9

當人們提出無意義的問題時,我討厭它。如果你堅持拒絕'系統',那就給出一個理由。 –

+1

@David Heffernan:這種無意義的情況在家庭作業中很常見...... – thkala

回答

4

exec()怎麼樣?它用另一個替換你的正在運行的程序,而不是像system()那樣運行。

popen()是另一種選擇,但我想象如果你不喜歡system()(爲什麼?),你也不會喜歡這一點。

2

我建議使用fork() + exec(),因爲這樣可以使原始過程繼續並行工作。除非您告訴我們您爲什麼不想使用system(),否則無法確定解決方案對您而言是否可以接受。 popen()是另一種選擇,如果您需要訪問被調用可執行文件的標準輸入或輸出。

相關問題