好的,我的问题是这个。假设我有一个简单的C ++代码:
#include <iostream>
using namespace std;
int main(){
cout << "Hello World" << endl;
return 0;
}
现在说我有这个程序,我想在我的程序中运行,称之为prog。在终端中运行此操作可以通过以下方式完成:
./prog
有没有办法从我简单的C ++程序中执行此操作?例如
#include <iostream>
using namespace std;
int main(){
./prog ??
cout << "Hello World" << endl;
return 0;
}
任何反馈都非常有必要。
答案 0 :(得分:13)
您想要system()
库调用;见system(3)。例如:
#include <cstdlib>
int main() {
std::system("./prog");
return 0;
}
当然,确切的命令字符串将取决于系统。
答案 1 :(得分:8)
您也可以使用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;
}
答案 2 :(得分:3)
尝试system(3):
system("./prog");
答案 3 :(得分:3)
您可以使用系统命令:
system("./prog");
答案 4 :(得分:3)
你可以使用这样的系统调用: http://www.cplusplus.com/reference/clibrary/cstdlib/system/
如果您使用用户输入作为参数,请小心,这是产生一些意想不到的后果的好方法。擦洗一切!
通常,系统调用可以被解释为不良形式。