Linux实现进度条小程序(包含基础版本和模拟下载过程版本)(下)

简介: Linux实现进度条小程序(包含基础版本和模拟下载过程版本)

2.基础版进度条

了解了上面那个倒计时小程序之后,我们先来看一下基础版本的进度条代码该怎么去设计

我们先看一下我完成之后的进度条的样子

首先我们先来完成那个’=‘和’>‘符号的打印

由我们刚才所写的那个倒计时小程序的启发,我们可以这么来设计

至于这个’>‘和这个’='我们在代码里面来控制

1.'='的回车方式的打印

因此我们就可以写出这样的代码

#include "Processbar.h"
//VERSION 1
void Process()
{
    char tmp[NUM]={0};
    int count=0;
    while(count<=100)
    {
        printf("[%-100s]\r",tmp);
        fflush(stdout);
        usleep(50000);
        tmp[count++]=BODY;
        if(count<100)//这里我们在count++之后再去修改tmp数组的下一个内容,保证这个进度条的'>'符号始终在最前方
        {
            tmp[count]=HEAD;
        }
    }
    printf("\n");
}

这里这个main.c的头文件写错了,应该是#include “Process.h”

发现成功运行

2.百分比的打印

这个百分比的打印只需要注意一点

printf("[%-100s][%%%d]\r",tmp,count);
这样就可以打印出%数字了

3.状态提示符的打印

我们这么打印状态提示符

于是就可以写出这样的代码

这里我们只需要注意这个不要忘了%4(对4取余)

还有这个’\‘是C语言当中的转义字符,

例如:’\n’就是’n’被转义为了换行符,

我们想要’\‘字符,就需要对这个转义字符再转义一次,就会得到原字符.

而且’\\'这个字符的大小其实是1个字符的大小

然后我们运行一下

发现成功运行

至此,我们的这个基础版本进度条实现结束

下面我们来看一下升级版本的进度条

3.升级版进度条

1.设计:进度条真实情况

2.模拟下载过程的函数download

在这里我们设计了一个模拟下载过程的函数download

我们定义了文件总大小FILE_SIZE,设置了每一次下载的文件的大小one_size,每次下载所需时间50ms(也就是50000微秒),

然后我们就能得出每次下载之后的剩余所需下载大小total,进而也能得到当前下载的进度rate

把所需的头文件包含到Peocessbar.h当中

然后我们的Processbar.c文件也需要修改

在Process函数中,这个表示进度的count就可以直接对rate取整了,这样就不用之前那个版本当中的while(count<=100)了,这也就是进度条真实情况的一种模拟

接下来我们再来看一下这个升级版进度条的样子

其实这两种进度条的样子是一样的,我们所改的是把第一种的while(count<=100)的循环版本改为了真实情况下的进度条的版本

也就是说我们模拟的那个download函数其实省去了process函数当中的usleep函数,并且process函数中的进度改为由download函数提供

这也才是更加让这个进度条代码符合真实情况

以上就是我们的Linux实现进度条小程序(包含基础版本和模拟下载过程版本)的全部内容,希望能对大家有所帮助!

相关文章
|
1月前
|
缓存 小程序 Linux
【Linux】Linux第一个小程序-进度条
【Linux】Linux第一个小程序-进度条
|
1月前
|
小程序 Linux 开发工具
Linux:进度条(小程序)以及git三板斧
Linux:进度条(小程序)以及git三板斧
34 2
|
19天前
|
安全 Unix Linux
一、linux 常用命令之 linux版本信息 系统管理与设置 持续更新******
一、linux 常用命令之 linux版本信息 系统管理与设置 持续更新******
18 0
|
23天前
|
Ubuntu Linux
Linux查看内核版本
在Linux系统中查看内核版本有多种方法:1) 使用`uname -r`命令直接显示版本号;2) 通过`cat /proc/version`查看内核详细信息;3) 利用`dmesg | grep Linux`显示内核版本行;4) 如果支持,使用`lsb_release -a`查看发行版及内核版本。
36 6
|
1月前
|
算法 Linux 调度
根基已筑!Anolis OS 23.1 预览版本搭载 Linux 6.6 内核和工具链升级完成
Anolis OS 23.1 对软件包的选择和组合进行了重新规划与决策,满足更为广泛的应用场景需求。
|
1月前
|
存储 缓存 小程序
『Linux升级路』进度条小程序
『Linux升级路』进度条小程序
|
1月前
|
小程序
微信小程序下载代码
微信小程序下载代码
|
网络协议 Linux C语言
linux 系统获取网络ip, mask, gateway, dns信息小程序
net_util.c          #define WIRED_DEV                   "eth0"     #define WIRELESS_DEV                "ra0"               #define PPPOE_DEV                   "ppp0" #define DEBUG_PRT(fmt, arg.
1256 0
|
7天前
|
机器学习/深度学习 缓存 监控
linux查看CPU、内存、网络、磁盘IO命令
`Linux`系统中,使用`top`命令查看CPU状态,要查看CPU详细信息,可利用`cat /proc/cpuinfo`相关命令。`free`命令用于查看内存使用情况。网络相关命令包括`ifconfig`(查看网卡状态)、`ifdown/ifup`(禁用/启用网卡)、`netstat`(列出网络连接,如`-tuln`组合)以及`nslookup`、`ping`、`telnet`、`traceroute`等。磁盘IO方面,`iostat`(如`-k -p ALL`)显示磁盘IO统计,`iotop`(如`-o -d 1`)则用于查看磁盘IO瓶颈。
|
1天前
|
Linux
【Linux】深入理解ls命令
【Linux】深入理解ls命令