Linux下彩色進度條

2021-08-18 03:16:25 字數 1987 閱讀 3866

回車與換行

緩衝區概念

乙個緩衝區物件是固定數量的資料的容器,其作用是乙個儲存器(記憶體),或者分段運輸區,在這裡資料可被儲存並在之後用於檢索。

緩衝區可分為:全緩衝,行緩衝,不帶緩衝

全緩衝:當填滿標準io的快取後才進行實際io操作。windows和linux都可以通過給 _mode設為 _iofbf設定全緩衝。全緩衝的典型就是對磁碟檔案的讀寫。緩衝區為空,一次讀滿資料,再寫出。

行緩衝:在輸入輸出遇到換行符時,執行真正的io操作。linux輸出預設是行緩衝,以回車結束。windows沒有行緩衝,不能設定,一旦設定變為全緩衝。設定行緩衝為:_iolbf。這時候輸入的字元先存放至緩衝區,等按下回車鍵時才進行實際io操作。典型代表就是鍵盤輸入資料,每次讀取一行。

不帶緩衝:直接進行實際的輸入輸出操作。windows預設輸出不帶緩衝,linux可以設定setvbuf(stdout, null, _ionbf, 0)。

緩衝區重新整理

#include 

#include

int main()

由於linux下是行緩衝,所以讓它睡眠3秒檢視現象,發現hello world!會先輸入到緩衝區中,睡眠3秒後輸出到顯示屏上。

如果重新整理緩衝區,則會先將hello world!輸出到顯示屏,然後休眠3秒。

彩色進度條

利用回車概念,實現視覺上的彩色進度條。

#include 

#include

#include

int main();

int i = 0;

int j = 0;

int color = ;

const

char* lable = "|/-\\";

for(; i < 101; ++i)

fflush(stdout);

usleep(50000);

}printf("\n");

return

0;}

效果如下:

在這裡就有乙個疑問如何使輸出字型帶顏色?

經過查詢資料發現只有在輸出時候加上 」\033[ ; m …… \033[0m「即可使得輸出的字型和背景是有顏色的。

常見引數如下:

字背景顏色範圍:40 - 49

字顏色:30 - 39

ansi控制碼:

Linux下簡易彩色進度條

個人部落格傳送門 前言在linux下安裝檔案的時候,都會有個進度條來提示我們安裝的進度是多少。這裡我們模擬輸出這個進度條。主要用到輸出函式的操作 緩衝區的重新整理 usleep函式 linux終端顏色的顯示等知識。效果如下 鋪墊知識點 緩衝區 緩衝區分位三種 無緩衝,行緩衝,全緩衝。無緩衝 沒有緩衝...

Linux下彩色進度條的實現

在linux下安裝軟體的過程中會出現乙個進度條,它通過動態增加一些符號來表示安裝進度。今天我們就來模擬實現一下乙個進度條。在實現進度條之前,首先需要了解一些概念。一.緩衝區 緩衝區分為三種 無緩衝,行緩衝和全緩衝。無緩衝 指沒有緩衝,立即顯示資訊。行緩衝 輸入輸出遇到換行符才進行io操作。全緩衝 輸...

Linux下彩色進度條的實現

實現乙個彩色進度條的前提是要了解linux下如何改變shell的輸出顏色,shell的輸出顏色改變是通過轉義序列完成的。多數轉義序列以控制字元 esc 和左中括號 開頭。該起始序列稱為控制序列引導符,通常由 033 或 e 代替 通過轉義序列設定終端顯示屬性時,採用以下格式 033 屬性m 或 e ...