GNU/Linux >> Linux の 問題 >  >> Linux

この bash パイプ構造を使用するとデータが失われるように見えるのはなぜですか?

nc <(...) 内のコマンド stdin からも読み取ります。

簡単な例:

$ nc -l 9999 >/tmp/foo &
[1] 5659

$ echo text | cat <(nc -N localhost 9999) -
[1]+  Done                    nc -l 9999 > /tmp/foo

text はどこでしたか 行く?ネットキャットを通じて。

$ cat /tmp/foo
text

あなたのプログラムと nc 同じ stdin と nc を争う


E/POLLIN で返される epoll() または poll() は、単一の read() かもしれない ブロックしない

あなたのように、改行まで 1 バイトの read() をたくさん実行できるわけではありません。

私はかもしれないと言います E/POLLIN で返された epoll() の後の read() がブロックされる可能性があるためです。

コードは EOF を過ぎても読み取ろうとし、read() エラーを完全に無視します。


Linux
  1. 自動化のためのBashの使用

  2. ヒアドキュメントの親シェルがダッシュのサブコマンドでは機能しないのに、Bashは機能するのはなぜですか?

  3. これが「読み取り中」にターミナルで機能するのに、シェルスクリプトでは機能しないのはなぜですか?

  1. Bashを使用してファイルの最後から2番目の行を読み取る方法は?

  2. 出力を bash 関数にパイプする

  3. innodb_file_per_table を使用する理由

  1. Bashでのケースステートメントの使用

  2. なぜ誰もがDockerを使用しているのですか?

  3. Bash の配列が見つかりません