Linux下进度条的简单实现

来源:互联网 发布:minitab比较多组数据 编辑:程序博客网 时间:2024/05/18 13:05

linux下进度条的原理:
1、Linux下的回车换行
换行:不换行,光标到下一行当前位置
回车:光标移动到当前行行首
\n:Linux下的回车换行,发现\n后将包含\n的所有内容输出到缓冲区
\r:只回车不换行,到当前行的行首
2、fflush()函数
在printf()后使用fflush(stdout)的作用是立刻将要输出的内容输出。
当使用printf()函数后,系统将内容存入输出缓冲区,等到时间片轮转到系统的输出程序时(如果此时进程休眠,将无法看到输出),将其输出。
使用fflush(stdout)后,立刻清空输出缓冲区,并把缓冲区内容输出。

首先,建立一个makefile目录,touch一个proc_bar.c文件,代码如下:

#include<stdio.h>#include<string.h>int main(){    int i=0;    char bar[102];    bar[0]='\0';    const char* lable="-\\|/";    while(i<=100)    {        printf("[%-100s][%d%%][%c]\r",bar,i,lable[i%4]);        bar[i]='#';        i++;        bar[i]='\0';        fflush(stdout);        usleep(100000);    }    return 0;}

makefile下编写Makefile文件

mytest:proc_bar.c    gcc proc_bar.c -o mytest.PHONY:cleanclean:    rm proc_bar.c proc_bar.o proc_bar.i proc_bar.s

运行mytest结果:

这里写图片描述

0 0
原创粉丝点击