【问题标题】:How to call unix commands from C program [duplicate]如何从C程序调用unix命令[重复]
【发布时间】:2012-08-14 12:54:27
【问题描述】:

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

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

谢谢, 阿什什

【问题讨论】:

  • 你为什么打电话给echo?? *printf 函数呢? (例如FILE * f = fopen("file", "w"); fprintf(f, "words"); fclose(f);

标签: c unix echo


【解决方案1】:
#include <stdlib.h>

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

是执行此操作的简单方法。如果您想更好地控制流程,那么您应该调查fork/exec

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

【讨论】:

    【解决方案2】:

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

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

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        【解决方案4】:

        您可以使用system 函数来做到这一点:

        #include <stdlib.h>
        
        int main() {
          system("echo 'words' > file");
          return 0;
        }
        

        或使用 fopen、printf、fclose。

        【讨论】:

          猜你喜欢
          • 2011-06-27
          • 1970-01-01
          • 1970-01-01
          • 2010-09-08
          • 1970-01-01
          • 2013-01-28
          • 2013-07-09
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多