如何从C ++程序运行另一个程序

时间:2011-08-01 23:40:58

标签: c++ function shell terminal system

我正在尝试调用另一个程序来执行一个函数(我不知道它是什么,只是它不是用C ++编写,而是用shell编写)在我的C ++程序中的文件上。我不知道如何在我的程序中实际执行该功能。我知道我写的是这样的东西

system(PROGRAM HERE);

问题在于我不知道我应该如何键入程序。我相信如果函数被称为dostuff,我会输入

system("dostuff");

......我想。但是,如果我将在C ++程序中作为变量提供给该函数的参数,该怎么办?这就是我真正需要帮助的地方。在终端中,我输入“dostuff -1 arg"。所以在C ++中我会输入

int arg = 5;

system("dostuff" arg); 

2 个答案:

答案 0 :(得分:5)

您可以先格式化字符串。包含<sstream>

int arg = 5;
std::stringstream ss;
ss << "dostuff " << arg;
system(ss.str().c_str());

或者,您可以使用std::string的串联功能。如果您更喜欢C风格的格式化程序,可以使用snprintf来达到类似效果。

答案 1 :(得分:0)

简单的答案是

system("dostuff -1 5");

基本上你需要构造终端参数并将其传递给系统调用。

例如:

int arg = 5;
std::stringstream command;

command << "dostuff -1 " << arg;

system(command.str());