目錄
行緩沖區(qū)概念:
行緩沖區(qū)代碼演示:
?編輯進(jìn)度條代碼
1:memset函數(shù):
2:const char* lable="|/-\\";?
3:usleep C語(yǔ)言?usleep?函數(shù)的功能和用法:
4:進(jìn)度條代碼的實(shí)現(xiàn).c文件與.h文件:
?編輯?編輯5:運(yùn)行截圖
?編輯進(jìn)度條代碼的實(shí)用性優(yōu)化
優(yōu)化1:processbar函數(shù)內(nèi)部循環(huán)改為使用者自己設(shè)計(jì)的download外部循環(huán):
優(yōu)化2:使用函數(shù)回調(diào)展示進(jìn)度
行緩沖區(qū)概念:
在學(xué)習(xí)進(jìn)度條小程序之前,我們要先了解行緩沖區(qū)概念:
首先:在Linux中,行緩沖是一種緩沖方式,它指定了輸出流何時(shí)刷新到文件或終端。根據(jù)行緩沖的概念,當(dāng)輸出到流的數(shù)據(jù)遇到換行符('\n')時(shí), 緩沖區(qū)會(huì)被自動(dòng)刷新,并將數(shù)據(jù)發(fā)送到文件或終端。總結(jié) : 當(dāng)遇到換行符('\n')時(shí),緩沖區(qū)的輸出會(huì)立即顯示出來(lái)。
其次:在另一方面,如果沒有遇到換行符,那么數(shù)據(jù)將保留在緩沖區(qū)中,直到達(dá)到以下條件之一:
- 緩沖區(qū)已滿,需要清空緩沖區(qū)來(lái)容納更多數(shù)據(jù)。
-
fflush()
函數(shù)被調(diào)用,強(qiáng)制刷新緩沖區(qū)。---- >?fflush(stdout); 包含頭文件?#include<unistd.h>
fflush(stdout)
是一個(gè)函數(shù)調(diào)用,它強(qiáng)制刷新stdout(標(biāo)準(zhǔn)輸出)流的緩沖區(qū)。通過(guò)調(diào)用這個(gè)函數(shù),你可以確保在遇到換行符之前,所有的輸出都立即顯示。
行緩沖區(qū)代碼演示:
例如,在下面的代碼中,printf()
函數(shù)在遇到換行符時(shí)會(huì)自動(dòng)刷新緩沖區(qū):
如果你希望立即顯示"Hello ",可以使用
fflush()
函數(shù)來(lái)強(qiáng)制刷新緩沖區(qū):
進(jìn)度條代碼
1:memset函數(shù):
在C語(yǔ)言中,memset函數(shù)用于將內(nèi)存區(qū)域設(shè)置為指定值。它的功能和用法如下:
void *memset(void *ptr, int value, size_t num);
-
ptr
:指向要設(shè)置的內(nèi)存區(qū)域的指針。 -
value
:要設(shè)置的指定值。 -
num
:要設(shè)置的字節(jié)數(shù)。
memset
函數(shù)將指定的內(nèi)存區(qū)域中的所有字節(jié)設(shè)置為指定的值。它接受三個(gè)參數(shù):指向要設(shè)置的內(nèi)存區(qū)域的指針、要設(shè)置的指定值和要設(shè)置的字節(jié)數(shù)。
2:const char* lable="|/-\\";?
這是模擬正在加載轉(zhuǎn)圈圈,其中"\\"運(yùn)用了轉(zhuǎn)義字符
3:usleep C語(yǔ)言?usleep
?函數(shù)的功能和用法:
在C語(yǔ)言中,usleep
函數(shù)用于讓程序暫停執(zhí)行一定的微秒數(shù)(以百萬(wàn)分之一秒為單位,微秒)。這對(duì)于需要在程序中引入延遲以控制執(zhí)行順序或模擬實(shí)時(shí)性的情況非常有用。
4:進(jìn)度條代碼的實(shí)現(xiàn).c文件與.h文件:

5:運(yùn)行截圖
進(jìn)度條代碼的實(shí)用性優(yōu)化
左邊是processBar.c 右邊時(shí)main函數(shù)
優(yōu)化1:processbar函數(shù)內(nèi)部循環(huán)改為使用者自己設(shè)計(jì)的download外部循環(huán):
優(yōu)化2:使用函數(shù)回調(diào)展示進(jìn)度
文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-791534.html
文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-791534.html
到了這里,關(guān)于Linux第一個(gè)小程序-進(jìn)度條(c語(yǔ)言版)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!