(一)
1.緩沖文件系統
緩沖文件系統的特點是:在內存開辟一個“緩沖區”,為程序中的每一個文件使用,當執行讀文件的操作時,從磁盤文
件將數據先讀入內存“緩沖區”,裝滿后再從內存“緩沖區”依此讀入接收的變量。執行寫文件的操作時,先將數據寫入內存“緩沖區”,待內存“緩沖區”裝滿后
再寫入文件。由此可以看出,內存“緩沖區”的大小,影響著實際操作外存的次數,內存“緩沖區”越大,則操作外存的次數就少,執行速度就快、效率高。一般來
說,文件“緩沖區”的大小隨機器而定。
fopen, fclose, fread, fwrite, fgetc, fgets, fputc, fputs, freopen, fseek, ftell, rewind等
2.非緩沖文件系統
緩沖文件系統是借助文件結構體指針來對文件進行管理,通過文件指針來對文件進行訪問,既可以讀寫字符、字符串、
格式化數據,也可以讀寫二進制數據。非緩沖文件系統依賴于操作系統,通過操作系統的功能對文件進行讀寫,是系統級的輸入輸出,它不設文件結構體指針,只能
讀寫二進制文件,但效率高、速度快,由于ANSI標準不再包括非緩沖文件系統,因此建議大家最好不要選擇它。本書只作簡單介紹。
open, close, read, write, getc, getchar, putc, putchar 等
(二)
open和fopen的區別:
前者屬于低級IO,后者是高級IO。
前者返回一個文件描述符(用戶程序區的),后者返回一個文件指針。
前者無緩沖,后者有緩沖。
前者與 read, write 等配合使用, 后者與 fread, fwrite等配合使用。
后者是在前者的基礎上擴充而來的,在大多數情況下,用后者。
open 是系統調用 fopen是C的庫函數。