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

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

在Linux下編寫一個(gè)進(jìn)度條的小程序

2019-11-08 03:18:44
字體:
供稿:網(wǎng)友

寫一個(gè)簡單的進(jìn)度條了解三個(gè)方面的知識(shí):進(jìn)度條的實(shí)現(xiàn)原理,linux下的回車,以及緩沖區(qū)

(1)進(jìn)度條的實(shí)現(xiàn)原理:定義一個(gè)102的字符數(shù)組bar[102],首先第一個(gè)位置bar[0] ='/0',在while循環(huán)中:每次更新從0的位置開始寫入n 個(gè)‘*’(每次從開始位置寫入 涉及到回車問題),更新到100結(jié)束,n來控制進(jìn)度條的進(jìn)度或者寫入多少個(gè)*。

(2)Linux下的回車問題:

Unix 系統(tǒng)里,每行結(jié)尾只有“<換行>”,即“/n”;Windows系統(tǒng)里面,每行結(jié)尾是“<回車><換行>”,即“ /r/n”;Mac

系統(tǒng)里,每行結(jié)尾是“<回車>”。一個(gè)直接后果是,Unix/Mac系統(tǒng)下的文件在Windows里打開的話,所有文字會(huì)變成

一行;而Windows里的文件在Unix/Mac下打開的話,在每行的結(jié)尾可能會(huì)多出一個(gè)^M符號(hào)。

    在windows系統(tǒng)中,當(dāng)你輸入回車時(shí)會(huì)自動(dòng)變成/r/n;在linux下的回車鍵只代表/n。

 

(3)緩沖區(qū):

全緩沖:linux下默認(rèn)為8192字節(jié),在緩沖區(qū)滿或者顯示調(diào)用刷新函數(shù)后進(jìn)行IO系統(tǒng)調(diào)用操作,

普通磁盤文件通常使用全緩沖區(qū)訪問。

行緩沖區(qū):默認(rèn)大小為128字節(jié),當(dāng)在遇到換行符或者緩沖區(qū)滿時(shí),標(biāo)準(zhǔn)IO庫執(zhí)行IO系統(tǒng)調(diào)用操作,終端即行緩沖區(qū)。

非緩沖區(qū):標(biāo)準(zhǔn)IO庫不對(duì)字符進(jìn)行緩存,標(biāo)準(zhǔn)出錯(cuò)流stderr通常是不帶緩沖區(qū)的。

PRintf()輸出時(shí)是先輸出到緩沖區(qū),然后再從緩沖區(qū)送到屏幕上。Linux下緩沖區(qū)刷新到屏幕的方式:1使用fflush(stdout)強(qiáng)制刷新標(biāo)準(zhǔn)輸出緩沖區(qū)。2.緩沖區(qū)已滿。3.scanf()要在緩沖區(qū)里取數(shù)據(jù)時(shí)會(huì)先將緩沖區(qū)刷新。4./n進(jìn)入緩沖區(qū)時(shí)。5. 程序結(jié)束時(shí)。

 下面實(shí)現(xiàn)進(jìn)度條:

  

#include<stdio.h>#include<unistd.h>int main(){	int i=0;	char bar[102];	const char *label ="-//|/";	bar[0] = '/0';	while(i<=100)	{		printf("[%-101s][%d%%][%c]/r",bar,i,label[i%4]);		fflush(stdout);		bar[i++] = '#';		bar[i] = '/0';		sleep(1);	}	printf("/n");	return 0;}

makefile:

bar:bar.c	gcc -o bar bar.c.PHONY:cleanclean:	rm -f bar


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 宁安市| 湾仔区| 彰化市| 昆山市| 金阳县| 遂溪县| 莲花县| 玉树县| 台南市| 滕州市| 宁陕县| 巴林右旗| 巴彦县| 双鸭山市| 禹州市| 孙吴县| 堆龙德庆县| 尤溪县| 伽师县| 新乡县| 丰镇市| 威远县| 宁蒗| 廊坊市| 揭阳市| 墨竹工卡县| 托克托县| 论坛| 南宫市| 萨嘎县| 秦皇岛市| 清水县| 保靖县| 辽中县| 密云县| 旌德县| 炎陵县| 炎陵县| 西乌珠穆沁旗| 江陵县| 临澧县|