When does the Read System call terminates when taking input from STDIN ??
質問する
1490 次
1 に答える
2
これにはかなりの部分があります。
まず、OSレベルのIOとstdioレベルのIOの違いを明確にしましょう。read(2)
およびwrite(2)
(POSIX IO)はPOSIXによって指定され、ファイル記述子(0から始まる番号)を使用して動作します。fread(3)
およびfwrite(3)
(stdio IO)はISO Cによって指定されSTDIN
、POSIXシステムでファイル記述子をカプセル化し、それらの上にいくつかのもの(出力バッファリングなど)を追加するなどのファイルハンドルを操作します。
したがって、自分でバッファリングread(2)
をwrite(2)
行わないでください。0
標準入力(ファイル記述子ではなく 、その上の1つの抽象化)で見られるバッファリングはSTDIN
、ターミナル(またはターミナルエミュレーション)によって行われます。正規モードを検索して無効にします。
stdioレベルでは、fwrite(3)
(およびprintf(3)
、fprintf(3)
など)は、出力の接続先に応じて出力バッファリングを実行します。
参照:
Linuxでキーが押されたかどうかを確認する方法は?
端末に1文字が印刷されない
画面に印刷すると、カーネルモードに切り替わり、UnixでOSコードが実行されますか?
于 2012-08-19T13:36:55.370 に答える