c ++使用系统命令问题

时间:2011-03-22 05:36:25

标签: c++

大家好我有一个奇怪的问题我用c ++编写代码成功编译并成功运行它。我使用以下命令编译 g ++ 1.c -o abc 运行程序我使用./abc 现在我的问题是我用c ++编写了另一个代码,如

#include <fstream>
#include<iostream>
using namespace std;
int main()
{
  ofstream SaveFile("/home/hadoop/project/hadoop-0.20.0/conf/core-site2.xml");
  SaveFile <<"<configuration>";
  SaveFile<<endl;
  SaveFile<<"<property>";
  SaveFile<<endl;
  savefile.close();
  return 0;
}

现在我想在这段代码中运行abc怎么做? 如何在此文件中使用或运行abc? 如何在这个程序中使用./abc?

1 个答案:

答案 0 :(得分:2)

实际上,你的问题标题(“......使用系统...”)说明了一切。使用:

system ("./abc");

运行./abc程序。

其他方法可以在程序中运行程序(通常依赖于特定于平台的功能),但这是最便携的。


完整的示例程序testprog.cpp,以显示我的意思:

#include <cstdlib>
int main (void) {
    std::system ("ls -ald m*");
    return 0;
}

用以下内容编译:

g++ -Wall -Wextra -pedantic -o testprog testprog.cpp

并运行生成的可执行文件testprog,此输出(在我的Ubuntu 10.04框中):

drwxr-xr-x 2 pax pax 4096 2010-12-14 09:33 myfolder

换句话说,它从程序本身运行ls -ald m*命令。