コンピューティングにおいて、End Of File(エンド・オブ・ファイル、略称:EOF[1])とは、ファイルやストリームにおいて、それより先に読み出すデータが存在しない(終端である)ことを示す状態のことである。
標準Cライブラリでは、getcharのような文字を読み取る関数は、ファイルやストリームの終端を読み取った時に、シンボル値(マクロ) EOF
に等しい値を返す。EOF
の実際の値は実装に依存するが(ただし、GNU Cライブラリなど、一般的には -1 が使用される[2])、文字を示す全てのコードと異なる値で示される。fgets()はヌルポインタが返るなど、同じ言語においても様々である。
データをシーケンシャルアクセスしていって、最後のデータまで読み込んだ場合(あるいは、さらに次のデータを読み込もうとした後に[3])、EOFが発生する。readなどのブロックを読み取る関数は、戻り値として読み取ったバイト数を返し、これが要求したバイト数よりも少ない場合は、EOFが発生したかエラーが発生したことを示す(どちらが発生したかは、errno
を確認するか、ferror
などの専用の関数を使用することで知ることができる)。
データベースにおいて与えられた条件に合うデータが存在しない場合、EOFとなる。EOFの判定方法は処理系により異なる。