国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

Linux實現進度條小程序

2019-11-08 03:28:26
字體:
來源:轉載
供稿:網友

進度條:

進度條即計算機在處理任務時,實時的,以圖片形式顯示處理任務的速度,完成度等剩余未完成任務量的大小,和可能需要處理時間,一般以長方形條狀顯示。日常生活中,下載,復制等等操作,我們都會見到進度條的身影。

     所以今天在cent os環境下的linux實現一個簡單的進度條。

那么工欲善其事必先利其器,我們先來了解一下幾點基礎知識。

       1.      我們想做一個怎么樣的進度條?

我們做的進度條是一個方括號不動 方括號里逐漸填充#的一個進度條

 那么 我們就需要固定一個長度 向其中添加東西

我們就需要用到 PRintf(“[-100s%]”,buf);這里的100是規定長度但是100是從右向左輸出 所以我們用到-100

     

       2.      進度條怎么處理進度增加?

這里 我們需要知道回車和換行的知識 回車和換行是不一樣的

回車指的是回到一行的首部

換行指的是換到下一行

那么我們如果需要讓進度條逐漸增加 我們就僅僅只需要回車這一個功能

 在C語言里回車是 /r

      3.      進度條如何緩慢顯示?

毫無疑問 這里需要用(秒為單位)sleep/usleep(微秒為單位)函數

但是 當我們先打印再用usleep時 我們發現它并沒有先打印 而是隔了一段時間后全部顯示

所以 我們還需要了解緩沖區

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

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

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

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

根據馮諾依曼思想 cpu處理完放到內存中 內存之后才會輸出到輸出設備上 所以我們需要刷新stdout

printf是一個行緩沖函數,先寫到緩沖區,滿足條件后,才將緩沖區刷到對應文件中,

                             

刷緩沖區的條件如下:

    (1)緩沖區填滿;

    (2)寫入的字符中有‘/n’;

    (3)調用fflush手動刷新緩沖區;

    (4)調用scanf要從緩沖區中讀取數據時,也會將緩沖區內的數據刷新;

滿足上面4個條件之一緩沖區就會刷新

所以我們應該用fflush函數刷新緩沖區以便讓他立馬顯示到屏幕上

那么 我們解決完這些問題 我們就開工 開始寫一個簡單的進度條小程序

那么剩下的不贅述 

建loading.c 和 Makefile文件

loading.c:

Makefile :

之后我們運行并查看結果


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 本溪市| 麻江县| 山东省| 高邮市| 威信县| 文登市| 年辖:市辖区| 宜州市| 日土县| 大理市| 通榆县| 牟定县| 黄龙县| 京山县| 通江县| 苍山县| 工布江达县| 昌邑市| 平江县| 社旗县| 嘉祥县| 万盛区| 阿巴嘎旗| 江永县| 南郑县| 汝南县| 麻城市| 马尔康县| 余干县| 施秉县| 沾化县| 巨野县| 恩施市| 盐城市| 金山区| 天长市| 南郑县| 奎屯市| 郴州市| 永昌县| 藁城市|