1. 程式人生 > >Linux下簡易進度條的實現【轉】

Linux下簡易進度條的實現【轉】

在生活中,進度條是很常見的,那麼,進度條是如何實現的呢?

  首先,進度條的動態是利用人眼視覺暫留效果的。實際上是如下過程:

先輸出:[=                                               ]表示進度是1%,重新整理之後

再輸出:[==                                             ]......由於重新整理的很快,所以看起來像是等號不斷向後增加,直到進度完成。

在寫這個程式之前我們需要了解一下的知識:

1.緩衝區

  緩衝區分為無緩衝、行緩衝、全緩衝。

  無緩衝:表示的是沒有緩衝,可以將資訊立馬顯現出來,典型代表是標準錯誤流stderr。

  行緩衝:表示的是輸入輸出遇到換行才執行真正的I/O操作。典型的代表是鍵盤的操作。

  全緩衝:表示的是輸入輸出寫滿緩衝區才執行I/O操作。典型的代表是磁碟的讀寫。

2.回車換行

  回車用'\r'表示,表示的是回到這行的起始位置。換行用‘\n’表示,表示的是換行到下一行。

  在C語言中,重新整理緩衝區的函式是fflush函式,強制重新整理緩衝區。實現這個進度條應使用的是無緩衝,實時的將進度條的變化顯現出來。在這裡,不需要換行只需要回車。程式程式碼如下: