linux中fflush函數和printf函數 【轉】


本文轉載自:http://blog.chinaunix.net/uid-30058258-id-5029847.html

printf是一個行緩沖函數
printf函數是標准函數,最終會調用到系統調用函數,printf函數會掉用到write系統函數;但是調用write函數需要滿足一些條件件。
(1)緩沖區滿
(2)遇到\n \r
(3)調用fflush函數來沖洗緩沖區
(4)scanf讀取緩沖區的內容
(5)調用printf函數的進程或線程結束會調用fflush函數
檢測緩沖區的大小為1024B。
fflush函數的作用:把文件流中未寫出的數據全部寫出去。

函數名: fflush
功 能:  清除讀寫緩沖區,需要立即把輸出緩沖區的數據進行物理寫入時
頭文件:stdio.h
原型:int fflush(FILE *stream)
其中stream是要沖洗的流
      
fflush(stdin)刷新標准輸入緩沖區,把輸入緩沖區里的東西丟棄[非標准]
fflush(stdout)刷新標准輸出緩沖區,把輸出緩沖區里的東西打印到標准輸出設備上
printf("。。。。。。。。。。。");后面加fflush(stdout);可提高打印效率

例子
 for(i=1;i<=10;i++)     
  {
       printf("%d ",i);
        sleep(1);             
  }
  這個不是每秒輸出一個數字而是十秒后一次性輸出十個數字!
 在printf后加上fflush后緩沖區中的內容全部輸出。


免責聲明!

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



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