首页 > 解决方案 > 如何用 C 编写一个程序,从 linux 命令的结果中打印一些列?

问题描述

我想编写一个程序,在放入终端后:

gcc task.c -o task
ps aux | ./task

将 %CPU 数据打印为标准输出。

我写了程序的开头:

int main(int argc, char *argv)
{


char buffer[BUFSIZ];
char *data = calloc(1,1);
while(fgets(buffer,BUFSIZ,stdin) != NULL)
{
    data = realloc(data,strlen(data)+1+strlen(buffer));
    strcat(data,buffer);


}

我不知道这种从 linux 程序的 stdout 获取数据的方式是否很好,但是在我打印之后,printf("%s",data);我得到了完全不同的结果(一些额外的迹象)。

标签: c

解决方案


推荐阅读