EOF 和標準輸入流(stdin)
stdin 指的是標準輸入流,通常代表使用者從控制台的輸入。與文件不同,stdin 沒有固有的文件結束 (EOF) 指示符。這意味著使用 fread 或 read 等函數從 stdin 讀取將無限期地繼續,直到手動引入某種形式的 EOF。
要理解此行為,請考慮以下循環:
while ((c = read(0, buffer, BUFSIZ)) > 0) { // Processing logic }
這只要讀取函數傳回正值,循環就會繼續從標準輸入讀取字元。但是,如果沒有 EOF 指示器,循環將永遠不會結束。
要將 EOF,使用者可以不同方式模擬此標誌:
輸入此 EOF 指令後,程式的行為就像它已到達輸入檔的結尾。因此,上面提到的循環將終止。
編輯:對 Stdin 的 EOF 的澄清
根據最初的問題,人們可能想知道 stdin 是否本質上缺乏 EOF,如果必須使用 EOF 命令手動插入。答案是肯定的。
stdin,當不是從文件重定向而是直接從控制台獲取時,可以被視為“無限”文件,因為它的結尾是不確定的。因此,這個「文件」的結尾必須由使用者透過 EOF 命令手動傳達。
以上是EOF 如何與標準輸入流 (stdin) 配合使用以及如何手動引入它?的詳細內容。更多資訊請關注PHP中文網其他相關文章!