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