linux 第一个小程序 进度条

今天在linux环境下写一个进度条,然后分享三个小知识。

#include
#include

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


知识点一:回车(\r)和换行(\n)的区别。

回车 \r 本义是光标重新回到本行开头。
换行 \n 本义是光标往下一行(不一定到下一行行首)

知识点二:Sleep,sleep和usleep。

头文件:#include

定义函数:unsigned int sleep(unsigned int seconds);

函数说明:sleep()会令目前的进程暂停, 直到达到参数seconds 所指定的时间, 或是被信号所中断.

返回值:若进程暂停到参数seconds 所指定的时间则返回0, 若有信号中断则返回剩余秒数
.
   
   usleep(n)         //n微秒
Sleep(n)     //n毫秒
sleep(n)     //n秒

知识点三:fflush。

fflush函数的作用:把文件流中未写出的数据全部写出去
函数名: fflush
功 能: 清除读写缓冲区,需要立即把输出缓冲区的数据进行物理写入时
头文件:stdio.h
原型:int fflush(FILE *stream)
其中stream是要冲洗的流
      
fflush(stdin)刷新标准输入缓冲区,把输入缓冲区里的东西丢弃[非标准]
fflush(stdout)刷新标准输出缓冲区,把输出缓冲区里的东西打印到标准输出设备上
printf("。。。。。。。。。。。");后面加fflush(stdout);可提高打印效率

你可能感兴趣的:(学习,linux,函数)