1

可能重复:
在 ac 程序中运行 shell 命令

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

谢谢,阿什什

4

4 回答 4

4
#include <stdlib.h>

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

是做到这一点的简单方法。如果您想对流程进行更多控制,那么您应该调查fork/exec

但是,您可以使用 C stdlib 文件函数轻松编写文件。这将比产生一个新进程轻得多

于 2012-08-14T12:57:06.443 回答
3

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

于 2012-08-14T15:16:38.557 回答
3

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

这完全取决于您想要使用它们的方式。如果您想要用户输入,那么您可能想要使用 execlp / execve。否则,system这是让 UNIX 与您的 C 程序一起工作的一种快速、简单的方法。

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

于 2012-08-14T13:05:05.247 回答
1

您可以使用系统函数执行此操作:

#include <stdlib.h>

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

或使用 fopen、printf、fclose。

于 2012-08-14T12:55:53.793 回答