
[1]
[DFN@en[[[EOF]]]] ([DFN@en[end of file]]) は、[[ファイル]]の末尾です。
古くは特別な[[ビット組合せ]]によって表現することもありましたが、
現在では専ら概念的、あるいは特定の実装の内部的な存在となっており、
具体的な存在に遭遇することは極めて稀です。

* 仕様書

[REFS[
- [6] [CITE@en-GB-x-hixie[HTML Standard]] ([TIME[2015-05-06 10:42:35 +09:00]] 版) <https://html.spec.whatwg.org/#explicit-eof-character>
- [10] [CITE@en[URL Standard]] ([TIME[2016-02-15 18:33:32 +09:00]] 版) <https://url.spec.whatwg.org/#eof-code-point>
]REFS]

* HTML における EOF

[7] [[HTML構文解析器]] (や[[XML構文解析器]]) の規定では、
[[入力ストリーム]]の末端を表す概念的な[[文字]]として「EOF」文字が使われています [SRC[>>6]]。

[8] 通常は、「EOF」文字は実際の[[文字]]ではなく、[[文字]]がそれ以上存在しないことによって表されます [SRC[>>6]]。

[9] [[script-created parser]] においては、 [CODE(JS)@en[[[document.close]]]]
が[DFN[[RUBYB[明示的「EOF」文字]@en[explicit "EOF" character]]]]を挿入することになっており
[SRC[>>6]]、この“文字”が「EOF」文字です。

;; [4] いずれにせよ、[[構文解析器]]の動作を規定するための内部的な存在であり、
実際の [[HTML文書]]上には存在しません。

* URL における EOF

[11] [DFN[[RUBYB[EOF符号位置]@en[EOF code point]]]]は、
[[文字列]]や[[符号位置ストリーム]]の終わりを示す概念上の[[符号位置]]です
[SRC[>>10]]。

* 関連

[2] [[SGML]] では[[ファイル]]に相当する[[実体]]の末尾を表す信号として[[実体終了]] ([[Ee]])
が定義されており、実質的に [[EOF]] に相当します。

[3] [[C]] では[[文字列]]の終端に [CODE(char)@en[[[0x00]]]] ([CODE(charname)@en[[[NULL]]]])
を使うのが一般的で、[[EOF]] と似ています。 (しかし [CODE(charname)@en[[[NULL]]]]
は [[EOF]] ではありません。)

[5] [[SGML]] には [CODE(SGML)@en[[[zapeof]]]] [[属性]]があります。

[FIG(quote)[
[FIGCAPTION[
[12] [CITE@en[RFC 959 - File Transfer Protocol]]
( ([TIME[2016-06-05 16:18:06 +09:00]]))
<https://tools.ietf.org/html/rfc959#page-4>
]FIGCAPTION]

> 
>       EOF
>          The end-of-file condition that defines the end of a file being
>          transferred.
> 

]FIG]
