Linux下进度条的简单实现

本文的题目就是实现一个进度条,进度条的应用在软件中无处不在,拷贝一个文件需要一个进度条,加载一个文件也需要一个进度条,来标志完成与否。

那么 ,一个进度条有哪些元素呢:

1.  一个不断向右生长的容器(直观的看出当前的进度)

2.  一个数据化反映进度的百分比。

3. 一个标志(这个标志反映这个进度条是否在工作,还是卡死

但一些地方还是需要注意的

1.首先是回车符,回车符不是\n,我们可以把\n看成是两个动作的合体,分别是回车和换行,都有自己对应的符号,这利用回车符一直在同一个位置输出造成动态的假象

2. 因为没有用到\n和换行,但是C语言的printf是行缓冲输出,什么意思呢?就是说不满一行不输出,就是靠\n输出的,没有\n只好强制把缓冲中的数据输出出所以这就 要用到函数fflush()。

        \r  回车:使光标回到这一行的行首

         \n  换行:使光标到下一行

程序源代码

效果图

时间: 2024-10-11 13:07:05

Linux下进度条的简单实现的相关文章

Linux下进度条小程序

源码如下: 简单实现的在命令行下进行简单的进度条显示的功能,能模拟现实目前的进度并且用旋转的字符表示代码正在运行未卡住. 代码主要利用了printf的格式化输出,以及回车符/r,在这里%s前进行了-100的对齐,也就是左对齐100个字符. Linux 平台下与windows不同的是将换行符\n表示成两个动作\r\n,好比老式的打字机,\n回车代表换行,\r表示将光标移到左边首个字符的位置.而printf等库函数在输出时,封装底层的系统调用,实际上I/O都有缓冲区,所以,对于printf等函数而言

Linux下禁止ping最简单的方法

LINUX下禁止ping命令的使用 以root进入Linux系统,然后编辑文件icmp_echo_ignore_allvi /proc/sys/net/ipv4/icmp_echo_ignore_all将其值改为1后为禁止PING将其值改为0后为解除禁止PING 直接修改会提示错误: WARNING: The file has been changed since reading it!!!Do you really want to write to it (y/n)?y"icmp_echo_i

shell 脚本实战笔记(11)--Mysql在linux下的安装和简单运维

前言: linux中安装mysql以及配置的管理, 基础的运维和管理还是需要会一些的. 这边作下笔记, 以求天天向上(^_^). 安装流程:*). 安装mysql-server1). 借助yum检索相关的mysql rpm包yum search mysqlmysql-server.x86_64 正是我们想要的 2). 安装mysql-serveryum install mysql-server.x86_64 -y默认mysql-client也安装好 3). 启动mysql服务/etc/init.

Android loading进度条使用简单总结

在这里,总结一下loading进度条的使用简单总结一下. 一.说起进度条,必须说说条形进度条,经常都会使用到嘛,特别是下载文件进度等等,还有像腾讯QQ安装进度条一样,有个进度总给人良好的用户体验. 先来找图看看,做这个图完成不用图片就可以做到了. 看下xml布局文件,其实就是直接用xml写的在加两个属性设置一下就好了,一个style,另一个是background. <ProgressBar android:id="@+id/pb_progressbar" style="

【linux 禁止ping设置】Linux下禁止ping最简单的方法

ping是一个通信协议,是ip协议的一部分,tcp/ip 协议的一部分.利用它可以检查网络是否能够连通,用好它可以很好地帮助我们分析判定网络故障.应用格式为:Ping IP地址.但服务启用ping有时候会造成很多麻烦. 因此有时候根据需要(如防止攻击),Linux服务器管理员可限制服务器禁止其它用户Ping.同时又保证Linux服务器又可以Ping其它服务器. 下面介绍linux下最简单的禁ping方法 首先登陆服务器终端之间执行:echo 1 > /proc/sys/net/ipv4/icmp

Linux下好用的简单实用命令

1.你是否为在输入了一大串命令之后发现第一个字符打错了而苦恼?只能删除重来嘛?或者一步步左移光标? NO,一个组合键轻松搞定 Ctrl+A -----到命令行首 Ctrl+E ------到命令行末 Ctrl+W ------删除光标处向前一个单词(到下一个空格键处) 和文本编辑中的home和end键一样好用(^o^)/~ 2.每次需要下载日志都得打开sftp 好麻烦,环境加固之后,更是愁...有快捷简便的方法吗?答案肯定是yes了.首先得查看你是否安装了一个rpm包“rpm -aq | gre

Linux下libaio的一个简单例子

转载:http://www.cnblogs.com/aLittleBitCool/archive/2011/10/18/2216646.html 异步io,很好玩的一个东西,从接口来看,封装的比较厉害,有时间研究内部实现,可以在项目中考虑替代select. libaio是Linux下的一个异步非阻塞接口,它提供了以异步非阻塞方式来读写文件的方式,读写效率比较高. 首先推荐两个介绍Linux I/O模型的页面,写的很好: http://www.ibm.com/developerworks/cn/l

转:Linux下使用Nginx搭建简单图片服务器

最近经常有人问图片上传怎么做,有哪些方案做比较好,也看到过有关于上传图片的做法,但是都不是最好的,今天再这里简单讲一下Nginx实现上传图片以及图片服务器的大致理念. 如果是个人项目或者企业小项目,仅仅只有十来号人使用的小项目,可以使用如下方案: 用户访问系统,使用上传图片功能,那么图片就上传到你的当前项目所在的tomcat服务器上,在/image下,上传成功后用户可以直接访问 http://ip:port/project/images/xxx.jpg 这样做在用户少的时候是没有问题的 当你的企

Linux下Libevent安装和简单实用

前言 Libevent 是一个用C语言编写的.轻量级的开源高性能事件通知库,主要有以下几个亮点:事件驱动( event-driven),高性能;轻量级,专注于网络,不如 ACE 那么臃肿庞大:源代码相当精炼.易读:跨平台,支持 Windows. Linux. *BSD 和 Mac Os:支持多种 I/O 多路复用技术, epoll. poll. dev/poll. select 和 kqueue 等:支持 I/O,定时器和信号等事件:注册事件优先级.Libevent 已经被广泛的应用,作为底层的