带C的命令行命令

时间:2010-12-23 01:56:43

标签: c windows-7

如果之前已经介绍过,我很抱歉,但我无法在StackOverflow上找到它。

基本上我正在尝试运行通常在Windows命令提示符下运行的东西:

  

msiexec / i file.msi / q

和我的C程序中的其他命令。这可能吗?

感谢。

4 个答案:

答案 0 :(得分:3)

在使用Win API ShellExecute的Windows中,您可以最好地控制子进程。然而,Dave18和Pablo提到的另外两种方法也适用。

答案 1 :(得分:2)

尝试C system功能

#include <stdlib.h>

int main ()
{

  system ("msiexec /i file.msi /q");
  return 0;
}

答案 2 :(得分:1)

您需要使用exec函数族中的一个函数。 Here's列出了它们。

因此,要运行您的示例,您可以使用:

execl("msiexec","/i","file.msi","/q",NULL);

答案 3 :(得分:1)

Pablo和Dave是对的,取决于你想做什么。

execl将新应用程序加载到内存中并运行它来代替当前进程。您的计划将在execl()来电后结束。

系统在子shell中运行应用程序,您可以检索它的退出状态,但不能检索有关它的stdin / stdout数据的任何信息。

您对开始这个过程后会发生什么感兴趣?