タグ付けされた質問 「fifo」

FIFOに関する質問-先入れ先出しスペシャルファイル、別名名前付きパイプ

1
名前付きパイプへの、または名前付きパイプからのリダイレクトが機能しないのに、猫へのパイプが機能する理由
これは、ncを使用したUnixのシンプルなエコーサーバーです。 mkfifo fifo cat fifo | nc -k -l 4458 -v | cat >fifo (これに基づく) ご覧のとおり、データフローは次のように機能します。 fifo (my named pipe) | | (using cat) | v nc | | (using cat) | v fifo そしてここに質問があります:なぜこれはうまくいかないのですか? nc -k -l 4458 -v >fifo <fifo あなたがしようとすることに気づくだろうtelnetにlocalhostに4458あなたが得るエラーを「接続が拒否しました」。
8 pipe  socket  fifo 

1
これらの4つのコマンドの違いは何ですか(fifo、プロセス置換、リダイレクト…)
私の目標は、ncおよびを使用して単純なエコーサーバーを作成することfifoです。私はそれを行うための最良の方法を探しているのではなく、単に次のコマンドのセマンティクスを理解しようとしているだけです(フォークが発生するのはいつ、なぜ、何が変わるのか、なぜコマンドの動作が異なるのか...)。 すべてのコマンドは、POSIXで動作する場合、私はわからないので、私は、バッシュを使っていshたりzsh、ksh... タイトルで言及している4つのコマンドを次に示します(既に実行したと想定していますmkfifo fifo)。 cat fifo | nc -l localhost 8888 > fifo exec 3<> fifo && nc -l localhost 8888 <&3 >&3 && exec 3>&- nc -l localhost 8888 <(cat fifo) > fifo nc -l localhost 8888 < fifo > fifo 今、私は4つのコマンドが同じことをすることを期待しています、少なくとも最後の2つは同じことをすることです。 最初のコマンドは期待どおりに動作します。クライアントが接続を閉じるとシャットダウンする単純なエコーサーバーです。 1のように動作します。 サーバーに接続してデータを送信できますが、何も返されません。クライアント接続を閉じると、サーバーがシャットダウンします。 サーバーに接続できません。サーバーは永久に待機します。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.