2014-11-08 49 views
-2

我有一個util.exe文件,我想在C程序中調用它。另外我的utils.exe文件有兩個值作爲參數。 任何人可以建議如何做到這一點?在C程序中調用.exe文件

+0

您正在使用哪個平臺 – Eric 2014-11-08 12:29:28

+0

我正在使用windows .. – user3797438 2014-11-08 12:30:08

+4

大多數系統都有一個叫做'system'的函數。使用搜索引擎爲您的平臺找到它的文檔。 – 2014-11-08 12:30:54

回答

1

您可以使用system()函數,您必須在程序中包含stdlib.h。由於您使用的是Windows,你可以使用

system("myfile.exe"); 

在你的程序中打開myfile.exe。注意,如果myfile.exe是不是在你的程序的目錄,那麼你就必須爲system這樣提供的完整路徑:

system("C:\\folder\\myfile.exe"); 
+0

如何傳遞參數 – user3797438 2014-11-08 12:36:04

+0

@ user3797438,'system(」myfile.exe firstargument secondargument「);'。 – 2014-11-08 12:44:39

1

您可以構建一個完整的命令行,例如

char cmdbuf[80]; 
snprintf (cmdbuf, sizeof(cmdbuf), "somefile.exe %d %d", i+j, i*j); 

(實際上,你應該測試的snprintf結果,並確保它小於sizeof(cmdbuf) ....)

然後將它傳遞給system(仔細閱讀system函數的文檔,由您的操作系統提供)。

int retcod = system(cmdbuf); 

要非常小心code injection;您可能應該引用或轉義或清理或驗證在命令行上傳遞的任何參數(進入cmdbuf)。這是非常具體的operating systemcommand shell

相關問題