在C程序中获取命令行的结果

时间:2014-07-09 10:42:25

标签: c command-line

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

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

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

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

2 个答案:

答案 0 :(得分:3)

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

通常,您必须生成子流程并设置管道以读取其标准输出。

答案 1 :(得分:1)

你可以做到

#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;
}