私は2つの別々のプロセスを持っています:コンマ区切りの値の後に1秒ごとに改行が続くCプログラムと、(同じフォーマットの)データを受け取り、このデータを処理するPerlプログラム。 (printf関数を介して)2つの並行プロセスが通信する方法を教えてください。
Cプログラムの出力のような値:
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
}
私は、これらの2つのプロセスがリアルタイムで通信するようにします。 Perlプログラムは入力を処理する前に最初のプログラムが終了するのを待つので、標準のbashパイプは機能しません(例えばprocess1 | process2)。
誰にもこの問題の解決策に関するアイデア、提案、または洞察力がありますか?前もって感謝します!
は、厳密に言えば、これはあなたが絶対的に正しい – andersoj
「リアルタイム」とは何の関係もありません、私は急いでこれを書いて、私はこれらのプロセスが動作するように望んでいた方法を説明するためのより良い方法を考えることができませんでした。コンカレントがより良い選択だったかもしれません。 –
Concurrentははるかに優れており、修正するための編集ボタンがあります。 – derobert