如何从C程序调用unix命令

时间:2012-08-14 12:54:27

标签: c unix echo

  

可能重复:
  Running a shell command in a c program

我想在C程序中调用echo,然后将其输出重定向到文件。但我不知道如何在C程序中调用unix命令。非常感谢任何帮助。

谢谢, Aashish

4 个答案:

答案 0 :(得分:4)

#include <stdlib.h>

int main() {
    system("echo test > filename");
    return 0;
}

是这样做的简单方法。如果您想要更好地控制流程,则应调查fork/exec

但是,您可以使用C stdlib文件函数轻松编写文件。那将是更多轻量级,而不是产生一个新的过程。

答案 1 :(得分:3)

使用system在C中执行UNIX命令的替代方法是execlp

这一切都取决于你想要使用它们的方式。如果您想要用户输入,那么您可能想要使用execlp / execve。否则,system是一种快速,简便的方法,可以让UNIX使用您的C程序。

对于重定向,您可以使用pipes。 它将帮助您查看要重定向到打开的文件的数据。使用system您只需设置它,但没有真正的选项来设置它或按照您希望的方式进行优化。

答案 2 :(得分:3)

如果你特别想要执行这个程序以获取它的输出,你宁愿需要popen()而不是system()。

答案 3 :(得分:1)

您可以使用system功能执行此操作:

#include <stdlib.h>

int main() {
  system("echo 'words' > file");
  return 0;
}

或使用fopen,printf,fclose。