在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

如何修改緩沖類型,緩沖常見問題介紹

西西 ? 來源:編程珠璣 ? 作者:守望先生 ? 2020-01-01 10:33 ? 次閱讀

今天我們看看如何修改這些默認的緩沖類型,以及在實際中可能遇到哪些問題。

更改緩沖類型

在上一篇中說到了一些默認的緩沖類型,例如:

指向終端設備的流是行緩沖的

標準錯誤是不帶緩沖的

指向文件的流是全緩沖的

……

那么這些默認的緩沖類型如何修改?有幾個函數可以用來更改緩沖類型:

如何修改緩沖類型,緩沖常見問題介紹

參數說明如下:

stream FILE *類型,文件指針

buf 緩沖區指針

mode 緩沖模式,包括_IOFBF(全緩沖),_IOLBUF(行緩沖),_IONBF(不帶緩沖)

size 緩沖區大小

這里有四個相關函數,作用類似,只是修改范圍不一。

setbuf函數中,如果buf設置為NULL,則緩沖關閉;否則指向長度為BUFSIZ長度的緩沖區,并且是行緩沖。

如何修改緩沖類型,緩沖常見問題介紹

通過設置stdout(標準輸出)的第二個參數為NULL,將其變成了不帶緩沖,因此你運行后發現,printf的打印會立即顯示在終端。當然你也可以通過setvbuf,如:

如何修改緩沖類型,緩沖常見問題介紹

這里設置為不帶緩沖,則會忽略buf和size參數。設置為全緩沖或者行緩沖的時候。并且buf為NULL,會使用合適長度的系統buffer,否則使用用戶自定義buffer。緩沖區的設置就介紹到這里。

fputs沒有及時輸出

其實在有了前面的基礎之后,很多問題就迎刃而解了。

看看下面的例子:

如何修改緩沖類型,緩沖常見問題介紹

比如你就想輸出一個字符,就打印到終端,但是按照上面的方法,字符并不會被及時輸出到終端,因此它默認是行緩沖的。打開注釋行,設置為不帶緩沖就可以了。

printf打印的日志沒有輸出

不知道你有沒有遇到過這樣的情況,準備調試某一個bug,發現每次運行到某個地方,打印就結束了,然后就掛了,讓你誤以為程序執行到打印的地方就結束了,然而有可能程序執行到后面,只是由于打印是行緩沖的,導致部分打印沒有出來,很可能就是你沒有加上換行符打印而已。這時候你可以設置為不帶緩沖,或者關鍵位置fflush,或者打印記得加上換行符。

fflush之后文件還是丟失了

看完前面的內容之后,是不是覺得豁然開朗了?別高興的太早。以上措施并不是萬事大吉。你可能會踩到什么坑?

文件內容寫完后,fflush了,內容也有了,然后完成后,系統馬上復位,復位起來后,文件內容還是丟失了

解壓一個壓縮包,解壓成功,系統復位后,還是發現文件大小為0,文件丟失了

如果你目前還沒有遇到過這樣的問題,那么你就需要格外注意了。雖然前面fflush等措施將緩沖區的內容進行了I/O操作,但是操作系統還需要將文件系統的buffer寫入磁盤,因此馬上直接復位會導致文件丟失!怎么辦呢?可以使用

fsync/sync函數

sync命令

以上函數或者命令強制將文件系統的buffer寫入磁盤,但是根據內容大小不一而需要不一樣的時間。

總結

理解緩沖區的概念會讓你在編程中受益無窮。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 緩沖
    +關注

    關注

    0

    文章

    53

    瀏覽量

    17841
收藏 人收藏

    評論

    相關推薦

    [7.6.1]--限幅箝位緩沖電路的工作原理

    電路分析緩沖電路
    李開鴻
    發布于 :2022年11月10日 23:26:47

    [2.13.1]--2.12緩沖電路

    電路分析緩沖電路
    jf_60701476
    發布于 :2022年11月27日 00:18:52

    單片機應用簡單技巧 - 環形緩沖

    } } } 這樣,就可以使用中斷方式進行串口打印輸出了。該方法可以很簡單移植到其他單片機上。當然,接收部分用中斷方式更加常見,建議也使用環形緩沖或者乒乓緩沖的方式接收數據,后面專門介紹
    發表于 09-18 11:01

    Sigma-Delta ADC常見問題解答

    -Delta ADC常見問題解答 ,歡迎小伙伴們下載~~附件Sigma-Delta ADC 常見問題解答_V2.0.pdf923.4 KB
    發表于 12-10 11:20

    緩沖電路的作用是什么?有什么類型

    緩沖電路的作用與基本類型緩沖電路的基本結構
    發表于 04-06 07:03

    緩沖器,緩沖器是什么?

    緩沖器,緩沖器是什么? buffer   中文譯名: 緩沖緩沖器,緩沖液  解釋:1、 電信設備。在數據傳輸中,用來彌補不同數據處
    發表于 03-08 13:30 ?2508次閱讀

    三態緩沖介紹

    三態緩沖器三態緩沖器三態緩沖器三態緩沖器三態緩沖器三態緩沖器三態
    發表于 11-16 11:59 ?0次下載

    緩沖電路的基本結構_緩沖電路工作原理

    本文開始介紹緩沖電路的概念,其次闡述了緩沖電路的基本結構與緩沖電路的工作原理,最后介紹緩沖
    發表于 03-26 13:40 ?7.4w次閱讀
    <b class='flag-5'>緩沖</b>電路的基本結構_<b class='flag-5'>緩沖</b>電路工作原理

    起重緩沖器的作用

    起重機是一種重型機械,作業時產生的慣性也較大,容易產生意想不到的動作,所以,起重機緩沖器在這時候就起到作用了,起重機緩沖器是吸收起重機的運行動能,以減緩沖擊的,起重機緩沖器作用及
    的頭像 發表于 12-04 15:45 ?1.2w次閱讀

    詳解高速ADC模擬輸入架構類型緩沖型和無緩沖型資料下載

    電子發燒友網為你提供詳解高速ADC模擬輸入架構類型緩沖型和無緩沖型資料下載的電子資料下載,更有其他相關的電路圖、源代碼、課件教程、中文資料、英文資料、參考設計、用戶指南、解決方案等資料,希望可以幫助到廣大的電子工程師們。
    發表于 04-28 08:48 ?32次下載
    詳解高速ADC模擬輸入架構<b class='flag-5'>類型</b>:<b class='flag-5'>緩沖</b>型和無<b class='flag-5'>緩沖</b>型資料下載

    開關電源之“吸收和緩沖

    本文主要介紹開關電源中的吸收緩沖電路。電源的基本拓撲電路上一般沒有吸收緩沖電路,實際電路上一般有吸收緩沖電路,吸收與緩沖是工程需要,不是拓撲
    發表于 02-09 10:37 ?22次下載
    開關電源之“吸收和<b class='flag-5'>緩沖</b>”

    電源瞬態緩沖器的作用是什么

    器的作用、原理、類型、應用場景以及如何選擇合適的緩沖器。 一、電源瞬態緩沖器的作用 1. 防止電壓尖峰和浪涌 瞬態電壓尖峰和浪涌是電源系統中常見的問題,它們可能由多種原因引起,如雷電、
    的頭像 發表于 06-10 16:03 ?572次閱讀

    緩沖器電路設計的分類與比較

    緩沖器電路能夠有效地管理信號傳輸過程中的噪聲、尖峰和振鈴現象。根據功率損耗的不同,緩沖器電路可以分為有損緩沖電路和無損緩沖電路兩大類。本文將探討這些不同
    的頭像 發表于 10-04 16:07 ?567次閱讀

    RC緩沖器的工作過程介紹

    RC緩沖器的基本功能是修改振鈴頻率和降低電壓尖峰電平。這一點對于保護電子元件,特別是那些對電壓敏感的元件如MOSFET,至關重要。通過限制電壓尖峰,RC緩沖器有助于維持電路的穩定性和可靠性。 RC
    的頭像 發表于 10-04 16:25 ?409次閱讀
    RC<b class='flag-5'>緩沖</b>器的工作過程<b class='flag-5'>介紹</b>
    主站蜘蛛池模板: 婷婷六月丁香午夜爱爱| 亚洲一区不卡视频| 黄色成人免费观看| vip免费观看| 男人和女人做爽爽视频在线观看| 3344成年在线视频免费播放男男| 在线观看免费av网站| 久久狠狠干| 亚在线| 色狠狠网| 韩国三级中文| 777欧美午夜精品影院| 夜色321看片资源站| 亚欧美视频| 亚洲一卡二卡三卡| 色视频网| 精品国产香港三级| 亚洲欧美国产五月天综合| 久久久夜| 亚洲视频在线不卡| 伊人久久网站| 青草青青产国视频在线| 大象焦伊人久久综合网色视| 天天视频官网天天视频在线| 国产大毛片| 免费大片看黄在观看| 四虎影院在线看| 综合天堂| 99热成人精品热久久669| 香蕉久久久久久狠狠色| 欧美成人精品一区二区| videosex久久麻豆| www.av小视频| 看屁屁www视频免费观看| 35qao强力打造免费上线高清| 亚洲丁香婷婷| 酒色激情网| 天天操夜夜干| 免费一级毛片在级播放| xxxxxx日本老师hd68| 午夜色片|