【发布时间】:2013-03-10 05:26:58
【问题描述】:
例如,我有一个 c 程序,它打印三行,相隔两秒,即:
printf("Wait 2 seconds...\n");
sleep(2);
printf("Two more\n");
sleep(2);
printf("Quitting in 2 seconds...\n");
sleep(2);
我执行程序并将其重定向到管道:
./printer > myPipe
在另一个终端上
cat < myPipe
6 秒后,第二个终端立即打印!我希望它立即打印可用的行。我该怎么做?
Obs:我无法更改源代码。它实际上是棋盘游戏算法的输出,我必须立即得到它,以便我可以将其插入另一个算法,得到答案并插入第一个算法......
【问题讨论】:
-
使用
tail -f myPipe而不是cat < myPipe,不要忘记在你的C程序中调用fflush