5

PHP でファイル関数を使用するときは、EOF をチェックします。EOF が実際にファイルに存在するのだろうか。空のテキスト ファイルを作成すると、0KB と表示されます。0KBのファイルにEOFはどのように存在しますか?

4

3 に答える 3

11

ファイルの終わり制御文字(ASCII文字セットではCTRL + Zまたは26または0x1A)がありますが、80年代にOSがリリースされて以来、実際にはファイルの終わりをマークする必要はありませんでした。最新のOSはすべて、ファイルサイズをメタデータとしてディレクトリ構造に保存し(正確な形式はファイルシステムによって異なります)、高レベルのファイルアクセス機能がファイルサイズをチェックして、プログラマーであるEOFをいつ示すかを決定します。

データにファイルの終わりがあり、テキストモードの変換がオンになっている場合(ほとんどの言語では、これはNL <-> CRLF変換を制御する設定と同じです)、ファイルアクセスがそれに達すると停止する可能性がありますEOF文字。バイナリモードでは、ファイルサイズに達するまで読み取りが続行されます。

于 2010-03-09T00:31:18.887 に答える
1

最新のファイルシステムでは、ディスクに実際のEOF文字はありません。一部のファイル読み取り関数では、1バイト値ではなく4バイト値を返すことで実装されていますが、ほとんどの関数はこの概念を使用していません。

于 2012-07-04T03:13:45.200 に答える
0

それは存在しません..しかしファイルサイズは存在します、そしてそれはあなたがeofがどこにあるかを知る方法です

于 2010-03-09T00:31:46.587 に答える