有没有办法在C程序中读取命令行的结果?
例如,如果我在C程序中有以下代码
sprintf(command, "cat input_file.txt | wc -l");
system(command);
我可以得到wc -l
的结果并将其存储在变量中,以便我可以在同一个C程序中使用它吗?
答案 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;
}