Linux下简易进度条的实现
在生活中,进度条是很常见的,那么,进度条是如何实现的呢?
首先,进度条的动态是利用人眼视觉暂留效果的。实际上是如下过程:
先输出:[= ]表示进度是1%,刷新之后
再输出:[== ]......由于刷新的很快,所以看起来像是等号不断向后增加,直到进度完成。
在写这个程序之前我们需要了解一下的知识:
1.缓冲区
缓冲区分为无缓冲、行缓冲、全缓冲。
无缓冲:表示的是没有缓冲,可以将信息立马显现出来,典型代表是标准错误流stderr。
行缓冲:表示的是输入输出遇到换行才执行真正的I/O操作。典型的代表是键盘的操作。
全缓冲:表示的是输入输出写满缓冲区才执行I/O操作。典型的代表是磁盘的读写。
2.回车换行
回车用'\r'表示,表示的是回到这行的起始位置。换行用‘\n’表示,表示的是换行到下一行。
在C语言中,刷新缓冲区的函数是fflush函数,强制刷新缓冲区。实现这个进度条应使用的是无缓冲,实时的将进度条的变化显现出来。在这里,不需要换行只需要回车。程序代码如下:

Linux下简易进度条的实现的更多相关文章
- linux下实现进度条小程序
转载自:实现一个简单的进度条 我们平常总会在下载东西或者安装软件的时候看到进度条,这里我们就在linux下实现这个进度条的功能. 1.我们使用的关键打印语句是printf函数: printf(&quo ...
- WPF 简易进度条效果
最近做一个项目,看到以前同事写的进度条效果不错,所以,拿来简化了下,不炫,但是项目中还是够用的. 还是,先来看下调用以后的效果 1.因为ProgressbBar的Foreground显示不得不一样,所 ...
- Linux简单的进度条
echo '进度条' i= bar="" ] do let idx=i% printf "[%-100s][%d%%]\r" "$bar" ...
- PHP生成linux命令行进度条
<?php$total = 100; for ($i = 1; $i <= $total; $i++) { printf("progress: [%-50s] %d%% Done ...
- Linux下简易线程池
线程池简介 线程池是可以用来在后台执行多个任务的线程集合. 这使主线程可以自由地异步执行其他任务.线程池通常用于服务器应用程序. 每个传入请求都将分配给线程池中的一个线程,因此可以异步处理请求,而不会 ...
- Linux下简易蜂鸣器驱动代码及测试实例
驱动代码: #include <linux/module.h> #include <linux/kernel.h> #include <linux/init.h> ...
- linux 卡在进度条进不去解决办法之一
centos为例 一, 如下: 如果这个地方卡住了的话也许是你上次改了passwd文件,这个是其中一个情况. 如果刚刚开机就卡住了或者怎么卡住了的话在开机的读条时候摁esc显示读取的进程,根据显示的错 ...
- C# 模式窗口下更新进度条
public partial class frmProcessBar : Form { public frmProcessBar() { InitializeComponent(); } public ...
- BASH Shell 简易进度条小函数
不多说,直接上脚本. # processbar <current> <total> processbar() { local current=$1; local total=$ ...
随机推荐
- VUE+WebPack游戏设计:'乘法防线'游戏设计
- selenium3 下载、配置
s1-s3发展历程 : http://www.cnblogs.com/hhudaqiang/p/6550135.html 官网地址:http://www.seleniumhq.org/文档:http ...
- Java泛型:泛型的定义(类、接口、对象)、使用、继承
地址 http://blog.csdn.net/lirx_tech/article/details/51570138 1. 设计泛型的初衷: 1) 主要是为了解决Java容器无法记忆元素类型的问题 ...
- Linux网络配置之虚拟网卡的配置(Red Hat 6.5)
怎么查看当前的网络状态,这里就不着重描述,用ifconfig命令就可以.我们直接进入主题. red hat系统中的网卡配置在这个目录中:/etc/sysconfig/network-scripts 1 ...
- Linux 添加新硬盘
1.识别分区和硬盘 在 /dev/ 目录下找到新的硬盘,sda 为本地硬盘,sda1.sda2.. 为分区,sdb 就是新添加的硬盘,如: [root@wusuyuan ~]# ls -ltr /de ...
- windows server2012安装jdk时报错误代码1603
解决方法:在控制面板中将其卸载,把jdk8换成jdk7就可以安装上了
- IO编程之writelines方法
1.使用with open as 函数写入文件 2.创建后的文件名为database.txt 3.创建一个函数进行读取文件,使用for循环遍历整个文件内容 4.使用if __name__=='__ma ...
- HDU 3366 Passage (概率DP)
题意:T组测试数据,一个人困在了城堡中,有n个通道,m百万money ,每个通道能直接逃出去的概率为 P[i] ,遇到士兵的概率为 q[i], 遇到士兵得给1百万money,否则会被杀掉,还有 1-p ...
- Web大文件(夹)上传(断点续传)控件发布-Xproer.HttpUploader6
版权所有 2009-2017荆门泽优软件有限公司 保留所有权利 官方网站:http://www.ncmem.com/ 产品首页:http://www.ncmem.com/webapp/up6.2/in ...
- 使用火蜘蛛采集器Firespider采集天猫商品数据并上传到微店
有很多朋友都需要把天猫的商品迁移到微店上去.可在天猫上的商品数据非常复杂,淘宝开放接口禁止向外提供数据,一般的采集器对ajax数据采集的支持又不太好. 还有现在有了火蜘蛛采集器,经过一定的配置,终于把 ...