为什么读写文件要有缓冲区?为什么要有输入输出缓冲区?
有輸入輸出緩沖區用以暫時存放讀寫期間的文件數據而在內存區預留的一定空間。即利用主存的存儲空間來暫存從磁盤中輸入輸出的信息。目的是緩和CPU 與 I/O 設備間速度不匹配的矛盾。減少對 CPU 的中斷頻率,放寬對 CPU 中斷響應時間的限制。提高 CPU和 I/O 設備之間的并行性。
擴展資料:
輸入輸出緩沖區通過磁盤緩存來實現,磁盤緩存本身并不是一種實際存在的存儲介質,它依托于固定磁盤,提供對主存儲器存儲空間的擴充。 主存可以看作是輔存的高速緩存, 因為輔存中的數據必須復制到主存方能使用;反之,數據也必須先存在主存中,才能最終輸出到輔存。
當輸入與輸出或生產者與消費者的速度基本相匹配時,采用雙緩沖能獲得較好的效果,可使生產者和消費者基本上能并行操作。
如果要一次輸入或輸出多個字節,系統不一定能直接接受,緩沖區可以把多個字節先放在他里面,然后系統到里面去讀取數據.你輸入或輸出的速度比系統讀取速度快,緩沖區起到緩解速度不匹配的問題
數據緩沖這個東西,就是因為數據被輸入后在處理的時候需要一定的時間,為了輸入接著輸出,零時差,就需要緩沖了,先預讀并處理一部分信息,然后開始輸出,在輸出的同時進行后面的輸入和處理,然后等緩沖的部分輸出完后,另一部分的數據也處理完畢了,就可以接著輸出了。根據處理速度的不同,需要的緩沖區大小也是不同的。
倘若沒有這個緩沖,那么就會很卡了,斷斷續續的數據流,因為處理不完。
實際上緩存、內存、顯存都是這種東西。
參考文章:為什么要有輸入輸出緩沖區?
總結
以上是生活随笔為你收集整理的为什么读写文件要有缓冲区?为什么要有输入输出缓冲区?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: VS报错 <error-type> 此声
- 下一篇: C语言sprintf函数(发送格式化输出