私はこれをしばらくの間機能させることに悩んでいたので、パイプがどのように機能するかについての根本的な誤解が私のトラブルの根本原因であると考えています。
私の目標は、リモートホストへのTCP接続を開始netcat
し、ファイルシステム上に2つの名前付きパイプを作成することです。1つはプロセスから読み取りデータを取得し、もう1つはプロセスが送信データとして書き込むことができます。現在、次の構成を使用しています。
mkfifo in
mkfifo out
cat out | netcat foo.bar.org 4000 > in &
ここから、他のプロセスがこのオープンTCP接続との間で読み書きできるようにしたいと思います。これは「うまくいく」のでしょうか、それともこのような構成が機能しない理由がありますか?
現在何が起こっているように見えるかはout
問題なく読むことができるが、私が書いたときin
、壊れたパイプを言及する出力が得られ、その後のすべての通信は死んでいるように見える。考え?
(関連:私はもともと使用しました:
netcat foo.bar.org 4000 < out > in &
しかし、入力待ちをブロックすることがわかりました。私もこれに興味がありますが、おそらく別の質問で対処した方が良いでしょう。)
write(stdout): Broken pipe
、out
パイプへの書き込み後(または直後)に受信します。