End Of File

コンピューティングにおいて、End Of File(エンド・オブ・ファイル、略称:EOF[1])とは、ファイルストリームにおいて、それより先に読み出すデータが存在しない(終端である)ことを示す状態のことである。

標準Cライブラリでは、getcharのような文字を読み取る関数は、ファイルやストリームの終端を読み取った時に、シンボル値(マクロ) EOF に等しい値を返す。EOF の実際の値は実装に依存するが(ただし、GNU Cライブラリなど、一般的には -1 が使用される[2])、文字を示す全てのコードと異なる値で示される。fgets()はヌルポインタが返るなど、同じ言語においても様々である。

データをシーケンシャルアクセスしていって、最後のデータまで読み込んだ場合(あるいは、さらに次のデータを読み込もうとした後に[3])、EOFが発生する。readなどのブロックを読み取る関数は、戻り値として読み取ったバイト数を返し、これが要求したバイト数よりも少ない場合は、EOFが発生したかエラーが発生したことを示す(どちらが発生したかは、errnoを確認するか、ferrorなどの専用の関数を使用することで知ることができる)。

データベースにおいて与えられた条件に合うデータが存在しない場合、EOFとなる。EOFの判定方法は処理系により異なる。

  1. ^ Wayne Pollock. “Shell Here Document Overview”. hccfl.edu. 2014年5月29日時点のオリジナルよりアーカイブ。2014年5月28日閲覧。
  2. ^ The GNU C Library "12.15 End-Of-File and Errors"
  3. ^ 最後まで到達していても、次のデータを読み込もうとしてエラーになるまでは End of File にならない、という振舞はわかりにくい。"comp.lang.c FAQ list" Question 12.2 を参考のこと。

From Wikipedia, the free encyclopedia · View on Wikipedia

Developed by Nelliwinne