linux :vim 实现命令行下输出进度条
1、? 進度條原理:
進度條的的動態增長是利用人的視覺短暫停留效果的,不斷從輸出緩沖區刷新出相同的內容,在肉眼看來進度條在不斷的增長。
在顯示器上先輸出[#??????????????????????????????????????????][%1]
刷新一次之后,???? [##????????????????????????????????????????? ][%2],由于刷新很快,看起來進度 ‘#’不斷增長,直到進度完成%100
2、? 緩沖區:
緩沖區(buffer)這個中文譯意源自當計算機的高速部件與低速部件通訊時,必須將高速部件的輸出暫存到某處,以保證高速部件與低速部件相吻合. 后來這個意思被擴展了,成為"臨時存貯區"的意思。
緩沖區分為:無緩沖、行緩沖、全緩沖。
無緩沖:表示的是沒有緩沖,可以將信息立馬顯現出來,典型代表是標準錯誤流stderr。
行緩沖:表示的是輸入輸出遇到換行才執行真正的I/O操作。典型的代表是鍵盤的操作。
全緩沖:表示的是輸入輸出寫滿緩沖區才執行I/O操作。典型的代表是磁盤的讀寫。
3、 回車換行:
回車用'\r'表示,表示的是回到這行的起始位置。換行用‘\n'表示,表示的是換行到下一行。
在C語言中,刷新緩沖區的函數是fflush函數,強制刷新緩沖區。實現這個進度條應使用的是無緩沖,實時的將進度條的變化顯現出來。在這里,不需要換行只需要回車。
4、 fflush:
fflush,函數名,?清除讀寫緩沖區,需要立即把輸出緩沖區的數據進行物理寫入時。
fflush(stdin)刷新標準輸入緩沖區,把輸入緩沖區里的東西丟棄[非標準]
fflush(stdout)刷新標準輸出緩沖區,把輸出緩沖區里的東西打印到標準輸出設備上
?
5、進度條代碼如下:
Progress_bar.c
?
?
Makefile :
?
?
總結
以上是生活随笔為你收集整理的linux :vim 实现命令行下输出进度条的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C语言实现的简易FTP客户端
- 下一篇: linux软件依赖库,【Linux】ub