簡體   English   中英

linux如何檢測文本文件的EOF?

[英]How does linux detect the EOF of a text file?

我想知道 Linux 如何檢測文本文件的結尾。 所有文本文件是否都以 NULL 字節結尾,而 Linux 是否利用了這一點?

現代操作系統,例如 Linux,不使用文件內容來檢測文件的結尾,它們將文件長度存儲在文件系統中並跟蹤文件 position 以確定是否有更多內容可供讀取。

事實上,文本文件根本不應該包含 null 字節。 它們通常以行尾標記結束( linux 上的\n和 OS/X,舊系統上的CR / LF )。 此規則的一個顯着例外是空文件。

從諸如終端 window 之類的設備讀取時,操作系統依靠設備驅動程序提供有關文件結尾的信息,在終端的情況下,用戶可以通過輸入系統特定的組合鍵(例如Ctrl )來發出信號unix 系統上的D和 Microsoft 操作系統上的Ctrl Z Enter

從程序來看, EOF可以使用下面的API檢測

  1. read()返回 0。
  2. getchar()返回 -1。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM