引用符
ライターがまだ書いていることをOSがどのように知るか。?... ファイルの EOF のワークフロー (^D や ^z のようなファイル ハンドルを閉じる) とは? EOF が書き込まれないとどうなりますか?
リーダーの読み取り速度がライターの書き込み速度よりも速い場合はどうなりますか? レートの不一致によってデッドロックが発生する可能性はありますか?
他の望ましくないシナリオは何ですか?
ファイルの読み取り中にOSはどのようにEOFを計算しますか?
-ニキル
PS: 現在のオペレーティング システムは Windows ですが、UNIX で同じ機能について興味深い機能を学習してもかまいません。
引用符
質問に関するその他の編集と詳細情報
EOFが文字ではないことがわかったので、ファイルのデータに書き込むことはできません。IF OS は、@saurabh でさえ指摘したように、File_size を使用して EOF を決定します。
(->)読み取り中の EOF (おそらく、適切なファイル システムのドライブ テーブルに格納されるファイル サイズから決定されます) )
- ファイルサイズが固定されていない場合があるため、プロセスはファイルサイズのファイルテーブルをポーリングしてEOFを決定し続けます。
- 私の知る限りでは 、EOF (この場合はファイル サイズ)を超えて読み取ると、EOF が発生します。ライターが断続的に書き込みを行い、リーダーがブロックを読み取っている状況を想定します。SO リーダーが利用可能なチャンクを超えて読み取ろうとすると、EOF がスローされますか? しかし、Writer はまだ EOF を通知していませんか?