从C++程序调用linux命令

jon*_*jon 1 c++

我编写了以下简单的c ++程序,以了解如何从C++程序调用Linux命令(使用system命令)

请告诉我为什么我有C++编译器的错误?我的程序有什么问题?

更多exm2.cc

#include <stdio.h>
#include <stdlib.h>
int main()
{
  system("echo -n '1. Current Directory is '; pwd");
  system("mkdir temp");
  system();
  system();
  system("echo -n '3. Current Directory is '; pwd");
  return 0;
  }


  [root@linux /tmp]# g++ -Wall  exm2.cc  -o exm2.end

  /usr/include/stdlib.h: In function ?int main()?:
  /usr/include/stdlib.h:738: error: too few arguments to function ?int system(con?
  exm2.cc:7: error: at this point in file
  /usr/include/stdlib.h:738: error: too few arguments to function ?int system(con?
  exm2.cc:8: error: at this point in file
Run Code Online (Sandbox Code Playgroud)

Pab*_*ruz 9

system()没有char*参数就不能使用.

所以这些陈述是错误的:

system();
system();
Run Code Online (Sandbox Code Playgroud)

如果你不打算做什么,就不要在里面放任何东西.

  • @jon-你打算让 `system();` 行做什么?将其更改为 `system("");` 将消除“参数太少”错误,但不一定会使该语句有用。 (2认同)

Lee*_*ton 7

system()接受一个参数,你可以用空字符串调用它:

#include <stdio.h>
#include <stdlib.h>
int main()
{
  system("echo -n '1. Current Directory is '; pwd");
  system("mkdir temp");
  system("");
  system("");
  system("echo -n '3. Current Directory is '; pwd");
  return 0;
  }
Run Code Online (Sandbox Code Playgroud)

但你可以把这些线路留下来:-)


Alp*_*ine 5

system()函数需要一个参数.尝试删除第7行和第8行.

#include <stdio.h>
#include <stdlib.h>
int main()
{
  system("echo -n '1. Current Directory is '; pwd");
  system("mkdir temp");
  system("echo -n '3. Current Directory is '; pwd");
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

system()文件名?
一个c ++程序源文件有一个扩展,system()所以它应该system()
是不是吗?

  • @jon:不,他不对.c ++源文件可以包含您想要的任何扩展名.有些扩展比其他扩展更常见.".cpp"和".cc"都是完全可以接受的,并且都被广泛使用. (3认同)