从C ++程序在Linux中运行另一个程序

好吧,我的问题是这样的。 说我有一个简单的C ++代码:

#include <iostream> using namespace std; int main(){ cout << "Hello World" << endl; return 0; } 

现在说我有这个程序,我想运行在我的程序,称之为编。 在terminal上运行可以通过以下方式来完成:

 ./prog 

有没有办法从我简单的C ++程序做到这一点? 例如

 #include <iostream> using namespace std; int main(){ ./prog ?? cout << "Hello World" << endl; return 0; } 

任何反馈意见都非常有限。

你想要system()库调用; 参见系统(3) 。 例如:

 #include <cstdlib> int main() { std::system("./prog"); return 0; } 

当然,确切的命令字符串将依赖于系统。

你也可以使用popen

 #include <stdio.h> int main(void) { FILE *handle = popen("./prog", "r"); if (handle == NULL) { return 1; } char buf[64]; size_t readn; while ((readn = fread(buf, 1, sizeof(buf), handle)) > 0) { fwrite(buf, 1, readn, stdout); } pclose(handle); return 0; } 

尝试系统(3) :

 system("./prog"); 

你可以像这样使用系统调用: http : //www.cplusplus.com/reference/clibrary/cstdlib/system/

小心如果你使用用户输入作为参数,这是一个很好的方法,有一些意想不到的后果。 磨砂一切!

一般来说,系统调用可以被认为是不好的形式。

你可以使用系统命令:

 system("./prog");