【Linux】编写简易的进度条
进度条即计算机在处理任务时,实时的,以图片形式显示处理任务的速度,完成度,剩余未完成任务量的大小,和可能需要处理时间,一般以长方形条状显示。在生活中,进度条是很常见,进度条的动态是利用人眼视觉暂留效果的。
所以在进行编写的时候需要了解什么是缓冲区:
缓冲区分为无缓冲、行缓冲、全缓冲。
1、无缓冲:表示的是没有缓冲,可以将信息立马显现出来,典型代表是标准错误流stderr。
2、行缓冲:表示的是输入输出遇到换行才执行真正的I/O操作。典型的代表是键盘的操作。
3、全缓冲:表示的是输入输出写满缓冲区才执行I/O操作。典型的代表是磁盘的读写。
下面以简易的代码实现进度条:
其它的时间函数:
sleep()---------以秒为单位
unsigned int sleep(unsigned int seconds);
usleep()------以微秒为单位
unsigned int usleep(unsigned int useconds);除了时间单位为微秒以外,在使用上与sleep()差不多。
nanosleep()---以纳秒为单位
关于换行:
回车用'\r'表示,表示的是回到这行的起始位置。换行用‘\n'表示,表示的是换行到下一行。
在C语言中,刷新缓冲区的函数是fflush函数,强制刷新缓冲区。实现这个进度条应使用的是无缓冲,实时的将进度条的变化显现出来。在这里,不需要换行只需要回车。
结果如图: