如何从c++程序中运行另一个程序

How do I run another program from a C++ program

本文关键字:程序 另一个 运行 c++      更新时间:2023-10-16

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

system(PROGRAM HERE);

问题是我不知道该怎么把程序打出来。我相信如果这个函数被称为dostuff,我会输入

system("dostuff");

…我认为。但是如果我在c++程序中作为变量给函数附加了一些参数呢?这才是我真正需要帮助的地方。在终端中,我会输入"dostuff -1 arg""。那么在c++中,我会输入

吗?
int arg = 5;
system("dostuff" arg); 

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

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

或者,您可以使用std::string的连接特性。如果您喜欢c风格的格式化程序,您可以使用snprintf来达到类似的效果。

简单的答案是

system("dostuff -1 5");

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

,

int arg = 5;
std::stringstream command;
command << "dostuff -1 " << arg;
system(command.str());