【问题标题】:Get result of command-line in C program在 C 程序中获取命令行的结果
【发布时间】:2014-07-09 10:42:24
【问题描述】:

有没有办法在 C 程序中读取命令行的结果?

例如,如果我在 C 程序中有以下代码

sprintf(command, "cat input_file.txt | wc -l");
system(command);

我可以得到wc -l 的结果并将其存储在一个变量中以便我可以在同一个C 程序中使用它吗?

【问题讨论】:

    标签: c command-line


    【解决方案1】:

    是的,如果有popen(),请查看。

    通常,您必须生成一个子进程并设置一个管道来读取其标准输出。

    【讨论】:

      【解决方案2】:

      你可以的

      喜欢

      #include <stdio.h>
      #include <stdlib.h>
      
      int main()
      {
         int num_line;
         char *command="cat input_file.txt | wc -l";
         FILE *p=popen(command,"r");
         fscanf(p,"%d",&num_line);
         printf("%d\n",num_line);
         pclose(p);
         return 0;
      }
      

      【讨论】:

      • 最好使用fscanf 来避免缓冲。
      猜你喜欢
      • 2016-03-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-17
      • 2011-10-30
      • 2019-07-16
      • 2017-08-17
      相关资源
      最近更新 更多