如何获取用C编写的程序在终端或命令提示符中执行命令?

时间:2014-06-02 22:41:37

标签: c windows macos terminal cmd

我想在C中编写一个可以关闭计算机的程序。为了让我这样做,我必须执行命令" shutdown -h now"。这将在终端或命令提示符中完成。如何告诉程序我希望它在命令行中执行命令?

3 个答案:

答案 0 :(得分:0)

有一个系统函数,它基本上相当于程序集系统调用的c: 它位于

system("cls"); 
例如,

将清除命令屏幕。

答案 1 :(得分:0)

要从C以简单方便的方式运行命令,请使用system

system( "date");

这将在POSIX操作系统下执行命令,shell使用您的标准环境,因此PATH受到尊重。不幸的是," shutdown -h now"需要权限,因此您可能需要使用sudo并输入密码。

答案 2 :(得分:0)

你有很多功能可以做你想做的事情:

  • system(“shutdown -h now”);
  • exec *系列:execlp(“/ sbin / shutdown”,“shutdown”,“ - h”,“now”);
  • popen(“shutdown -h now”);

它们都有优点和缺点。

例如,popen将返回一个FILE *,其中包含已执行命令的输出。

Exec *将简单地用您执行的二进制文件替换您的程序的内存区域,这样如果您想继续执行您的程序,您将不得不使用fork(2)。

System只是一个使用fork和exec *的辅助函数。