繁体   English   中英

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

[英]How do I run another program from a C++ program

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

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());

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM