すべてのプロセスに独自のstdin、stdout、およびstderrがありますか、それとも1つのstdin、1つのstdout、および1つのstderrを共有するだけですか?もちろん、通常、コンピューターごとに1つのキーボードと1つの端末がありますが、プロセスの入力ストリームと出力ストリームは互いに分離されていますか?
質問する
2362 次
1 に答える
20
stdout
、stdin
、およびstderr
は、その入力と出力と対話するために、オペレーティング環境によってプロセスに与えられた単なる抽象化です。キーボードが 1 つしかないという事実にもかかわらず (ほとんどの場合、とにかく)、オペレーティング システムは現在の入力を取得するプロセスを決定する方法を認識しており、キーストロークをstdin
そのプロセスの に渡します。同様に、画面は 1 つしかないにもかかわらず、複数のウィンドウに分割されている場合があります。最後に、多くのプロセスは、入力と出力がファイル ストリームに関連付けられています。オペレーティング システムでは、複数のプロセスを 1 つの入力ファイルまたは 1 つの出力ファイルにバインドできますが、その場合でも、オブジェクトを表すオブジェクトstdin
とstdout
プロセス内のストリームは分離されます。これらはオペレーティング システム内の同じオブジェクトを参照し、OS はそのオブジェクトをユーザー間で共有することを管理します。
于 2012-08-08T11:10:41.187 に答える