- 標(biāo)準(zhǔn)I/O庫是ISO C標(biāo)準(zhǔn),跨多系統(tǒng)
- 使用標(biāo)準(zhǔn)I/O庫創(chuàng)建或打開文件時(shí),即是用一個(gè)流(Stream)與此文件關(guān)聯(lián)起來。(如使用fopen函數(shù)將得到一個(gè)FILE類型的指針:FILE *)
- 在進(jìn)程啟動(dòng)時(shí)自動(dòng)可用的三個(gè)FILE *是stdin \ stdout \ stderr,定義在stdio.h頭文件中
- 標(biāo)準(zhǔn)I/O庫提供的buffering(緩存),目標(biāo)是減少read\write的數(shù)量,嘗試自動(dòng)的在每次操作中使用緩存。標(biāo)準(zhǔn)庫中提供以下三種緩沖:
- 全緩沖:將標(biāo)準(zhǔn)I/O緩沖區(qū)填滿后,才執(zhí)行操作。比如寫滿緩沖區(qū)后,再寫入磁盤;或從磁盤取出填滿緩沖區(qū)后,再讀取數(shù)據(jù);其中flush操作可將緩沖中寫入的數(shù)據(jù)全量刷到磁盤上;
- 行緩沖:當(dāng)輸入、輸出遇到換行符時(shí),才真正執(zhí)行I/O操作,典型的用于命令行終端;
- 不帶緩沖:每次讀寫都直接生效,如stderr就是一個(gè)不帶緩沖的標(biāo)準(zhǔn)I/O流;
- 其它:當(dāng)且僅當(dāng)一個(gè)流指向非交互式設(shè)備時(shí),才是全緩沖的;標(biāo)準(zhǔn)錯(cuò)誤決不會(huì)是全緩沖的;
- 默認(rèn):標(biāo)準(zhǔn)錯(cuò)誤不帶緩沖;指向終端設(shè)備的流是行緩沖;
- 可以通過setbuf, setvbuf函數(shù),更改流的默認(rèn)緩沖方式;
Unix文件系統(tǒng) 標(biāo)準(zhǔn)I/O庫
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。