複製鏈接
請複製以下鏈接發送給好友

文件結尾

鎖定
文件結尾(英語:End of File,縮寫為EOF),是操作系統無法從數據源讀取更多數據的情形。數據源通常為文件或流。
中文名
文件結尾
外文名
End of File
縮    寫
EOF
領    域
計算機

文件結尾簡介

在C標準庫中,像getchar這樣的數據讀取函數返回一個與符號(宏)EOF相等的值來指明文件結束的情況發生,EOF的真實值與不同的平台有關(但通常是-1,比如在glibc中),並且不等於任何有效的字符代碼。塊讀取函數返回讀取的字節數,如果它小於要求讀取的字節數,就會出現一個文件結束符。 [1] 

文件結尾字符

從一個終端的輸入從來不會真的“結束”(除非設備被斷開),但把從終端輸入的數據分區成多個“文件”卻很有用,因此一個關鍵的序列被保留下來來指明輸入結束。在UNIX和AmigaDOS中,將擊鍵翻譯為EOF的過程是由終端的驅動程序完成的,因此應用程序無需將終端和其它輸入文件區分開來。Unix平台的驅動程序在行首傳送一個傳輸結束字符(Control-D,ASCII編碼為為04)來指明文件結束。在AmigaDOS中,驅動程序傳送一個Control-\來指明文件結束(而Control-D被用作中斷字符)。要向輸入流中插入一個真正的Control-D字符,用户需要把一個“引用”命令字符放在它的前面(通常是Control-V,表示下一個字符不作為控制字符,而是按照字面量使用)。
在微軟的DOS和Windows(以及CP/M和許多DEC操作系統)中,讀取數據時終端不會產生EOF。此時,應用程序知道數據源是一個終端(或者其它“字符設備”),並將一個已知的保留的字符或序列解釋為文件結束的指明;最普遍地説,它是ASCII碼中的替換字符(Control-Z,代碼26)。一些MS-DOS程序,包括部分微軟MS-DOS的shell(COMMAND.COM)和操作系統功能程序(如EDLIN),將文本文檔中的Control-Z視為有意義數據的結尾,並且/或者在寫入文本文檔時將Control-Z添加到文檔末尾。這是由於兩個原因:
  • 向後兼容CP/M。CP/M的第1版與第2版的文件系統以128字節“塊”的倍數記錄文件長度,所以當有意義數據在一個“塊”的中間結束時,習慣上用Control-Z字符來標記它,此後至塊結尾的字節為未利用。而MS-DOS文件系統總會記錄文件確切的字節長度,所以在MS-DOS中文件不再必需以Control-Z字符來標記結尾。
  • 它使得應用程序在從終端和文本文檔讀取數據時得以使用相同的代碼。 [1] 

文件結尾使用來歷

在ANSI X3.27-1969磁帶標準中,文件結束是由帶標記(英語:tape mark)指明的,它由一個約3.5英寸的間隙和隨後的一個字節組成,在九軌磁帶中這個字節包含字符13(十六進制),而在七軌磁帶中包含字符17(八進制)。帶結尾(英語:end-of-tape),通常縮寫為EOT,是由兩個帶標記指明的。這是在像IBM 360這樣的機器上使用的標準。指明快到磁帶物理結尾的反射棒也被稱為一個EOT標記。 [1] 

文件結尾操作系統

操作系統(英語:operating system,縮寫OS)是管理計算機硬件軟件資源的計算機程序,同時也是計算機系統的內核與基石。操作系統需要處理如管理與配置內存、決定系統資源供需的優先次序、控制輸入與輸出設備、操作網絡與管理文件系統等基本事務。操作系統也提供一個讓用户與系統交互的操作界面。
操作系統的類型非常多樣,不同機器安裝的操作系統可從簡單到複雜,可從移動電話的嵌入式系統到超級電腦的大型操作系統。許多操作系統製造者對它涵蓋範疇的定義也不盡一致,例如有些操作系統集成了圖形用户界面,而有些僅使用命令行界面,而將圖形用户界面視為一種非必要的應用程序。 [2] 
參考資料
  • 1.    Wayne Pollock. "Shell Here Document Overview". hccfl.edu. Archived from the original on 2014-05-29. Retrieved 2014-05-28.
  • 2.    Deitel, Harvey M.; Deitel, Paul; Choffnes, David. Operating Systems. Upper Saddle River, NJ: Pearson/Prentice Hall. 2004. ISBN 978-0-13-182827-8.