EOF是一個位於每個文件末尾的特殊字節序列,還是它有點像內核通知的異常(中斷)?什麼是EOF?
什麼是EOF?
回答
很久以前在DOS機器上它曾經被^Z
表示,但是現在它是內核到達文件末尾並且當它試圖進一步讀取時通知程序。
我已經使用ASCII EOF字符將數據文件分隔成一個人類可讀的標題,後面跟着二進制數據。這使機械工程師從測試中得到的所有內容都保存在一個文件中,同時保持足夠小以適應軟盤。 (這是幾年前的!)EOF字符告訴大多數文本顯示程序停止。任何想要快速瀏覽文件頭的人都可以在命令行中使用「打印」命令(就是這個樣子?)。
大多數情況下,EOF角色並未在文件中使用,至少在我居住的世界的一小部分地區。實際上,除了NUL,ESC和CR/LF之外,沒有任何ASCII控制字符有任何用處。
EOF可能在某些流協議中起到某種作用,但那不在我的專業知識範圍之內,所以我把它留給其他人來解決。
只是爲了強調一點:在該文件格式中,EOF將在十幾行文本之後出現在開始附近。 – DarenW 2010-06-15 05:49:13
有沒有這樣的東西在EOF在ASCII - 有ETX(文本結束 - CTRL-C)和EOT(傳輸結束 - CTRL-D)和EM(介質結束 - CTRL-Y),甚至ETB(傳輸塊結束 - ctrl-W)但不是EOF。 – 2010-06-15 06:13:02
EOF是C stdio庫返回的特殊代碼,表示沒有更多的數據要從FILE
中讀取。不同的操作系統有自己的方式來記錄文件的大小/結尾以及將它們返回給用戶程序的方式,這將通過該操作系統上的C標準庫實現轉換爲EOF返回碼。
- 1. eof()返回什麼?
- 2. 二進制文件的EOF是什麼?
- 3. 什麼是ZIP文件的EOF標記?
- 4. Bindingsource中EOF的等價物是什麼?
- 5. 什麼是C++中的EOF密鑰
- 6. 什麼是Python的完美對口「而不是EOF」
- 7. 什麼是print << EOF;它是如何工作的?
- 8. 爲什麼不使用<< EOF代替cat << EOF?
- 9. 什麼參數傳遞給EOF()函數
- 10. 爲什麼:: feof()與:: _ eof(:: fileno())不同?
- 11. 這是幹什麼的:while((c = getchar())!='\ n'&& c!= EOF);
- 12. 檢查樣式中EOF FOUND'}'的含義是什麼?
- 13. 什麼是std :: filebuf相當於ifstream :: eof :: fail和:: tellg
- 14. 什麼是C編程語言中的EOF?
- 15. 在Tomcat中導致java.io.CharConversionException與EOF或isHexDigit消息的原因是什麼?
- 16. 對已經「EOF」ed執行peek()是否繼續返回EOF?
- 17. 部分匹配後,scanf應該在EOF上返回什麼?
- 18. 爲什麼標準輸入()會導致EOF錯誤
- 19. 即使到達EOF時,爲什麼io.Pipe()會繼續阻塞?
- 20. EOF和普通整數有什麼區別?下面
- 21. 我在Burrows Wheeler轉換中使用了什麼EOF字符?
- 22. x需要通過eof-object退出什麼值?計劃
- 23. 爲什麼我需要多個EOF(CTRL + Z)字符?
- 24. 爲什麼Flask + SocketIO + Gevent會給我SSL EOF錯誤?
- 25. 爲什麼不看清(0)清除流的eof狀態?
- 26. fgets在輸入中遇到EOF時會發生什麼?
- 27. 爲什麼我從我的io.PipeReader中獲取EOF?
- 28. K&R:第6章 - 爲什麼getword()函數不讀取EOF?
- 29. 爲什麼不這樣期待句柄超時或者eof
- 30. 爲什麼CTRL-D不能以單聲道發送EOF?
MSDOS'^ Z'事件是來自CP/M的宿醉,其中文件總是128字節長的倍數。對於文本文件,128字節的最後一個塊用'^ Z'填充。 – msandiford 2010-06-15 06:10:27
^Z仍然在MS-DOS(或Windows命令提示符)中用於標記文本文件的結尾。例如,當您使用COPY命令加入二進制文件時,這一點很重要。您必須使用/ b標誌,否則該文件在第一個^ Z字符處被截斷。 – PauliL 2010-06-15 07:26:04