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=$ ...
随机推荐
- centos7 安装wxPython
*** exact error that occured. This usually means GTK+ is incorrectly installed. configure: error: ...
- Mysql 使用触发器,把插入的数据在插入到宁一张表里
CREATE TRIGGER tgr_tablea_insert AFTER //触发器名字 动作在插入数据之后 ON alertinfo //监听哪个表之后触发 FOR INSERT //监听的表的 ...
- MYSQL 创建常见问题
1.创建函数时,报错: 出错信息:ERROR 1418 (HY000): This function has none of DETERMINISTIC, NO SQL, or READS SQL D ...
- MobileMovieTexture播放视频
MobileMovieTexture插件支持IOS系统播放视频文件.简单,方便
- [C++] the pointer array & the array's pointer
int *p[4]------p是一个指针数组,每一个指向一个int型的int (*q)[4]---------q是一个指针,指向int[4]的数组 --> type: int(*)[4] vo ...
- pcl知识
1.pcl/io/pcd_io.h pcl/io/ply_io.h pcl::PLYReader reader; pcl::PCDWriter pcdwriter; 读取ply pcd 2.voidl ...
- 去除textarea默认样式
border: none; resize:none; outline: none;
- 10.13DOM中document--文档1找到元素的方法,还有元素内容属性
今天讲了js的组成部分中的第二组成部分(DOM),DOM包括以下内容: window -- 窗口 ...
- Mybatis 多个Mapper
在实际应用中的,会有较多个mapper.如果每新建一个mapper,就向SqlMapConfig上加上对应的配置文件,会十分不便. 可以新建一个package,在其下面放置Mapper.java,同时 ...
- javascript 如何创建只能执行一次的事件。
document.getElementById("myelement").addEventListener("click", handler); // ha ...