【发布时间】:2010-10-17 06:48:47
【问题描述】:
我有两个独立的进程:一个 C 程序,它每秒输出逗号分隔的值,后跟一个换行符,一个 Perl 程序,它接受数据(以相同格式)并处理这些数据。
C 程序输出(通过 printf)值如下:
1, 2, 3, 4, 5, 6
7, 8, 9, 10, 11, 12
...
Perl 程序处于无限循环中,等待 STDIN 以处理这些数据:
while ($line = <STDIN>)
{
chomp($line) # Line should now read "1,2,3,4,5,6"
# Process data
}
我希望这两个进程实时通信。标准 bash 管道不起作用(例如 process1 | process2),因为 Perl 程序在处理输入之前等待第一个程序完成。
是否有人对此问题的解决方案有任何想法、建议或见解?提前谢谢!
【问题讨论】:
-
严格来说,这与“实时”无关
-
你说得对,我写的很匆忙,想不出更好的方法来解释我希望这些过程如何工作。并发可能是更好的选择。
-
并发好多了,还有一个编辑按钮供你修复。