文件IO與標准IO的區別


文件IO與標准IO的區別

文件I/O就是操作系統封裝了一系列函數接口供應用程序使用,通過這些接口可以實現對文件的讀寫操作,文件I/O是采用系統直接調用的方式,因此當使用這些接口對文件進行操作時,就會立刻觸發系統調用過程,即向系統內核發出請求之后,系統內核會收到執行相關代碼處理的請求,決定是否將操作硬件資源或返回結果給應用程序

標准I/O雖然也是使用一系列函數接口對文件進行讀寫操作,但函數出自C庫。因此,封裝了底層系統調用更多的調用函數接口。

標准I/O與文件I/O的本質區別在於:

  1. 標准I/O函數接口在對文件進行操作時,首先操作緩存區,等待熬緩存區滿足一定的條件時,然后再去執行系統調用,真正實現對文件的操作而文件I/O不操作任何緩存區,直接執行系統調用。
  2. 使用標准I/O可以減少系統調用的次數,提高系統效率。例如,將數據寫入文件中,每次寫入一個字符。采用文件I/O的函數接口,每調用一次函數寫入字符就會產生一次系統調用;而執行系統調用時,Linux必須從用戶態切換到內核態,處理相應的請求,然后再返回到用戶態,如果頻繁地執行系統調用會增加系統的開銷。
  3. 采用標准I/O的函數接口,每調用一次函數寫入字符,並不着急將字符寫入文件,而是放到緩存區保存,之后每一次寫入字符都放到緩存區保存。直到緩存區滿足刷新的條件(如寫滿)時,再一並將緩存區中的數據寫入文件,執行一次系統調用完成此過程,這樣便很大程度地減少了系統的調用次數,提高了執行效率

 

 

 

這種思想即是將一次一次操作變成批量一次性操作的


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM