0
我是C新手,我试图弄清楚如何将一个程序的输出发送到另一个程序进行处理......或PIPE它。C - 管道使用printf和scanf ..暂停
例如, ./foo | ./boo
foo - 每隔100ms从外部源读取数据并将其写入标准输出。
嘘 - 从标准输入读取数据,做一些简单的计算,并将其写入到stdout,
(我没有获得富,但它写在一个新的生产线每100ms的浮点值。)
我有工作,每天几百项后,但...有2秒钟暂停...
所以它吐出约200线,2秒的停顿,200线,2秒暂停。
是否有我需要注意的缓冲区?
这里是嘘声的代码;
#include <stdio.h>
float input;
float value;
while (1)
{
input = scanf("%f", &value);
{do stuff here}
printf("result %f \n ", input);
fflush(stdout);
}
return 0;
}
编辑 我发现这个问题,FOO曾经为延时100ms循环。当把它揉成嘘声时,它不知何故被分组在一起。删除这个循环修复了问题
我注意到'printf'没有换行符。如果是这样的话,你应该在'printf'后面调用'fflush(stdout)'。 –
感谢David,我用newline char&fflush更新了代码,我仍然得到相同的结果。 – Mwilliams03
如果你打印一个'\ n',你不必刷新标准输出: –