C语言缓冲文件系统和非缓冲文件系统
C?語言所使用的磁盤文件系統(tǒng)有兩大類:一類稱為緩沖文件系統(tǒng),又稱為標(biāo)準(zhǔn)文件系統(tǒng);另一類稱為非緩沖文件系統(tǒng)。
緩沖文件系統(tǒng)的特點(diǎn)是系統(tǒng)自動(dòng)地在內(nèi)存區(qū)為每一個(gè)正在使用的文件開辟一個(gè)緩沖區(qū)。從磁盤向內(nèi)存讀入數(shù)據(jù)時(shí),則一次從磁盤文件將一些數(shù)據(jù)輸入到內(nèi)存緩沖區(qū)(充滿緩沖區(qū)),然后再從緩沖區(qū)逐個(gè)地將數(shù)據(jù)送給接收變量;向磁盤文件輸出數(shù)據(jù)時(shí),先將數(shù)據(jù)送到內(nèi)存中的緩沖區(qū),裝滿緩沖區(qū)后才一起送到磁盤去。
用緩沖區(qū)可以一次讀入一批數(shù)據(jù),或輸出一批數(shù)據(jù),而不是執(zhí)行一次輸入或輸出函數(shù)就去訪問一次磁盤,這樣做的目的是減少對(duì)磁盤的實(shí)際讀寫次數(shù),因?yàn)槊恳淮巫x寫都要移動(dòng)磁頭并尋找磁道扇區(qū),花費(fèi)一定的時(shí)間。緩沖區(qū)的大小由各個(gè)具體的C?版本確定,一般為512?字節(jié)。
非緩沖文件系統(tǒng)不由系統(tǒng)自動(dòng)設(shè)置緩沖區(qū),而由用戶自己根據(jù)需要設(shè)置。在傳統(tǒng)的UNIX?系統(tǒng)下,用緩沖文件系統(tǒng)來處理文本文件,用非緩沖文件系統(tǒng)處理二進(jìn)制文件。
1983?年ANSI?C?標(biāo)準(zhǔn)決定不采用非緩沖文件系統(tǒng),而只采用緩沖文件系統(tǒng)。即用緩沖文件系統(tǒng)處理文本文件,也用它來處理二進(jìn)制文件。也就是將緩沖文件系統(tǒng)擴(kuò)充為可以處理二進(jìn)制文件。
一般把緩沖文件系統(tǒng)的輸入輸出稱為標(biāo)準(zhǔn)輸入輸出(標(biāo)準(zhǔn)I/O),非緩沖文件系統(tǒng)的輸入輸出稱為系統(tǒng)輸入輸出(系統(tǒng)I/O)。在C?語言中,沒有輸入輸出語句,對(duì)文件的讀寫都是用庫函數(shù)來實(shí)現(xiàn)的。
ANSI?規(guī)定了標(biāo)準(zhǔn)輸入輸出函數(shù),用它們對(duì)文件進(jìn)行讀寫
總結(jié)
以上是生活随笔為你收集整理的C语言缓冲文件系统和非缓冲文件系统的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 外卖点餐系统源码|餐饮点餐源码开发
- 下一篇: 自动化检测工具助力GJB 8114-20