バックグラウンドプロセスのstdout出力はフォアグラウンドプロセスのstdin入力として扱われますか?

バックグラウンドプロセスのstdout出力はフォアグラウンドプロセスのstdin入力として扱われますか?

バックグラウンドプロセスが端末に表示されるようにstdoutに出力すると、その出力はフォアグラウンドプロセスのstdin入力と見なされますか?バックグラウンドプロセスとフォアグラウンドプロセスはパイプを介して関連していません。

この問題は、フォアグラウンドプロセスがstdinの入力を待っている間に端末に入力して入力できるために発生します。バックグラウンドプロセスのstdout出力も同じことをするようです。バックグラウンドプロセスは端末に「入力」しており、フォアグラウンドプロセスはstdin入力を待っています。。それでは、フォアグラウンドプロセスはなぜバックグラウンドプロセスのstdout出力をstdin入力として使用しないのですか?

私の経験ではそうではないようです。私が正しいなら、なぜできないのですか?

ベストアンサー1

端末は概念的にプロセスからstdin分離されていますstdout。キーボード入力と画面出力のための「ターミナル」について話しているので、これは混乱する可能性があります。

ただし、プロセスはキーボード入力を画面に表示せずに読み取ることができます。たとえば、ログインすると入力した内容からパスワードが読み込まれますが、画面には表示されません。

もちろん、このプロセスでは、キーボードを入力しなくても画面に出力を印刷できます。

tee出力ストリームは画面に書き込むことができます(例:そして他のプロセスに渡しますが、同じではありません。

要するに、画面に何かを印刷することは、キーボードで何かを入力するのとは異なります、両方を説明するために「ターミナル」という単語を使用します。

おすすめ記事