【发布时间】:2014-07-09 10:42:24
【问题描述】:
有没有办法在 C 程序中读取命令行的结果?
例如,如果我在 C 程序中有以下代码
sprintf(command, "cat input_file.txt | wc -l");
system(command);
我可以得到wc -l 的结果并将其存储在一个变量中以便我可以在同一个C 程序中使用它吗?
【问题讨论】:
标签: c command-line
有没有办法在 C 程序中读取命令行的结果?
例如,如果我在 C 程序中有以下代码
sprintf(command, "cat input_file.txt | wc -l");
system(command);
我可以得到wc -l 的结果并将其存储在一个变量中以便我可以在同一个C 程序中使用它吗?
【问题讨论】:
标签: c command-line
是的,如果有popen(),请查看。
通常,您必须生成一个子进程并设置一个管道来读取其标准输出。
【讨论】:
你可以的
喜欢
#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 来避免缓冲。