2014-11-08 76 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

相关问题