位置:首頁 > 軟件操作教程 > 編程開發(fā) > C語言 > 問題詳情

C語言 標準文件與非標準文件

提問人:劉團圓發(fā)布時間:2020-12-02

    CPU的計算速度遠遠高于外部磁盤,如果每次程序執(zhí)行時,每讀取一個字節(jié)都到磁盤上去取數(shù)據(jù),就需要每次都啟動CPU執(zhí)行讀寫磁盤操作:從磁盤中讀出一個數(shù)據(jù)調(diào)入到內(nèi)存中,再送往CPU計算。這樣效率會非常低,因為每次讀寫磁盤時,就要中斷CPU正在進行的工作,而去執(zhí)行磁盤操作,這樣大大降低了CPU的效率。因此,文件的讀寫通常使用緩沖技術(shù)。

    緩沖技術(shù)就是在內(nèi)存中為每一個需要進行讀寫的文件開辟一塊緩沖區(qū),利用緩沖區(qū)完成文件操作。這樣就把頻繁的磁盤操作轉(zhuǎn)換為對內(nèi)存的讀寫,效率大大提高。

    一般將從內(nèi)存往外存寫數(shù)據(jù)稱為“輸出”,從外存中讀取數(shù)據(jù)稱為“輸入”。

    利用緩沖技術(shù)進行數(shù)據(jù)輸入的過程為:當需要從磁盤讀取數(shù)據(jù)時,系統(tǒng)先將該文件的數(shù)據(jù)從磁盤取出,存入到系統(tǒng)為其分配的內(nèi)存中的一塊“輸入緩沖區(qū)”,應(yīng)用程序在讀取數(shù)據(jù)時直接從該緩沖區(qū)中讀取,如圖所示。

image.png

    利用緩沖技術(shù)進行數(shù)據(jù)輸出的過程為:當需要將程序運行結(jié)果輸出到外部磁盤時,首先將程序運行結(jié)果按照程序運行輸出的先后次序送入到系統(tǒng)為該文件分配好的一塊內(nèi)存的“輸出緩沖區(qū)”,待該緩沖區(qū)數(shù)據(jù)裝滿時,將該緩沖區(qū)的數(shù)據(jù)一次寫入磁盤文件,

如上圖所示。

    利用緩沖區(qū)對磁盤文件的逐次訪問改為批量訪問的方式稱為標準文件操作。相應(yīng)的,磁盤文件系統(tǒng)稱為緩沖文件系統(tǒng),或標準文件系統(tǒng)或高層文件系統(tǒng)。

    如果操作系統(tǒng)不在內(nèi)存中開辟讀寫緩沖區(qū),不使用緩沖技術(shù)的磁盤文件系統(tǒng)稱為非緩沖文件系統(tǒng),或非標準文件系統(tǒng)或低層文件系統(tǒng)。


繼續(xù)查找其他問題的答案?

相關(guān)視頻回答
回復(fù)(0)
返回頂部