国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表
主站蜘蛛池模板: 沙湾县| 正蓝旗| 阿图什市| 府谷县| 宜兰县| 剑阁县| 那坡县| 江阴市| 正宁县| 年辖:市辖区| 霍城县| 鲜城| 葫芦岛市| 苗栗市| 北票市| 石景山区| 石渠县| 志丹县| 滁州市| 绥阳县| 济宁市| 安图县| 如东县| 崇州市| 隆安县| 定边县| 浦江县| 龙游县| 乳源| 天台县| 哈巴河县| 大安市| 福建省| 临桂县| 邓州市| 福建省| 独山县| 临泉县| SHOW| 焦作市| 兴义市|