ファイルに実際にEOF(ファイルの終わり)文字が含まれていますか? [コピー]

ファイルに実際にEOF(ファイルの終わり)文字が含まれていますか? [コピー]

これ静止軌道運用環境衛星(GOES)-R製品ユーザーガイド(PUG)NOAA(National Oceanic and Atmospheric Administration)の文書には、プレーンテキストファイル(§4.3)の次のようなやや長い説明が含まれています(強調項目)。

Unix のテキストファイル形式は、レベル 1b およびレベル 2+ 半静的ソースデータファイルの小さなサブセットに使用されます。 Unixテキストファイル形式(ファイル終了文字を除く)は、製品メタデータ値を含むnetCDFファイル仕様のXMLベースのNetCDF Markup Language(NcML)表現を格納するためにGRBメタデータパッケージに含まれています。 。

Unixテキストファイル形式は、可変長である可能性がある電子テキストの一連の行(レコードなど)です。 GOES-R地上システムの場合、電子テキスト、改行、およびファイル終了文字は米国情報交換標準コード(ASCII)に準拠しています。各行の終わりは改行文字です。ファイルの末尾にはファイルの終わりの文字があります。

ファイルの内容の正確な説明ですか?ファイルの終わりは、ファイル(または他のストリーム)からデータを読み取れなくなったときにオペレーティングシステムまたはライブラリルーチンが返す条件だと思います。このバイトは実際にファイルに含まれていますか?

ベストアンサー1

Unixテキストファイル形式は、可変長である可能性がある電子テキストの一連の行(レコードなど)です。各行の終わりは改行文字です。ファイルの末尾にはファイルの終わりの文字があります。

ファイルの内容の正確な説明ですか?

最後の太字部分までのみ可能です。しかし、私はファイルの終わりを使用するUnixyシステムを知りません。それらはすべてファイルの長さを1バイトで保存するため、そのような表示は必要ありません。

ただし、一部のシステムではファイルの終わり文字を使用しているようです。少なくともウィキペディアの主張それ:

CP / Mファイルシステムは128バイトの「レコード」の倍数でのみファイルの長さを記録するため、通常、Ctrl-Z文字はレコードの途中で終わった場合に意味のあるデータの終わりを示すために使用されます。

ファイルの長さが1つのブロックにのみ保存されている場合、データストリームの最後の行末をエンコードするにはいくつかのカスタマイズが必要です。もちろん、バイナリデータを処理するすべてのプログラムは、何らかの方法でより細かいファイルサイズを処理する必要があります。ただし、バイナリファイルの場合は、次の「追加」バイトを無視する方が簡単です。

MS-DOSではControl-ZがEOF表示として使用されているように見えますが、そこでもそれは必要ありません。

引用されたテキストは、現在システムにどのテキストファイルがあるのか​​を誤って知っているようです。私たちが見るとPOSIX規格の規定は何ですか?、NULバイトを含まずに行(改行で終わる)で構成されていることを除いて、ファイルの終わりやテキストファイルへの表示に関する言及はありません。

また見なさい:ファイルの最後の文字は何ですか?

この部分に関しては...

GOES-R地上システムでは、[...]とファイルの終わりの文字はASCII(American Standard Code for Information Interchange)に従います。

他の人がコメントしたように、ASCIIには少なくともその名前(*)にファイルの終わりの文字がありません。上記のControl-Zは、26または「代替」(SUB)で、「無効または無効な文字を表すために使用されます。」したがって、そのテキストだけではEOF文字が何であるか(使用されている場合)を知ることは困難です。

(*「End of Text」(ETX、コード3)、「End of Transfer」(EOT、コード4)、「End of Transfer Block」(ETB、23)、「End of Medium」(EOM、25)そして「ファイルで区切られた」お守り」(FS、28)もあります。

ファイルの終わりは、ファイル(または他のストリーム)からデータを読み取れなくなったときにオペレーティングシステムまたはライブラリルーチンが返す条件だと思います。

もちろん。read()ファイルの終わりに達すると、システムコールは0バイト(エラーなし)を返し、一部のstdio関数(getchar())には驚くほど呼び出されない戻り特殊値がありますEOF

また見なさい:EOTとEOFの違い

おすすめ記事