【项目分享-知识讲解】 Linux第一个项目--进度条的实现与解析
目录前言Part1. 效果展示Part2. 效果分析Part3. 代码解析Part3.1. processbar.cPart3.2. main.cPart3.3. processbar.hPart4. 总结与反思Part5. 结语前言进度条相信大家都不陌生在下载资源的时候经常会见到所以我们也来模拟实现一下进度条的表现吧。lets go!!!!!!!!Part1. 效果展示Part2. 效果分析1:模拟实现下载完后的流程也就是显示下载完毕和下载了多少资源也可以显示速度。2:随着下载的进行显示符号表示下载进度。3:显示下载了多少资源以百分比的形式呈现。4: 用一根斜杠不断旋转表示下载的不断进行。也就是我们要用代码来实现各个模块。Part3. 代码解析Part3.1. processbar.c#define NUM 144 #define ch # #define speed 1 void processbar(int process) { static int cnt 0;//利用这个变量达到每次都能刷新斜杠的样子 达到旋转的效果 cnt % 4;//控制大小 不能越界 char buf[NUM 1];//将要打印的字符存在这里 memset(buf, 0, NUM 1);//全部置0 方便后续的printf终止 char fmt[64];//存储printf格式控制符 char lable[4] { |, /, -, \\ };//存储斜杠的不同样式 值得注意的是最后一个 由于\为转义字符 所以为了不让他将后面的单引号转义了 所以我们要先使用这个把他转义了 for (int i 0; i process; i) { buf[i] ch;//按照当前进度 填充数组 } sprintf(fmt, [%%-%ds][%%6.2f%%%%][%%c]\r, NUM);//利用sprintf制作fmt 值得注意的是当我们要保留%d不期望它是作为后面变量的类型引导时 我们要用两个%% printf(fmt, buf, process * 100 / (double)NUM, lable[cnt]);//打印进度 cnt;//改变下一次的斜杠 fflush(stdout);//强制刷新 防止打印不出来的情况发生 } void DownLoad() { double cur 0;//代表当前进度 while (cur NUM) { processbar(cur);//打印进度条 usleep(50000);//sleep 代表下载所需要的时间 cur speed;//进度 } printf(\ndownload done,all %d MB\n, NUM);//打印最终结果 }Part3.2. main.c#include processbar.h int main() { DownLoad();//代表多次下载 DownLoad(); DownLoad(); DownLoad(); DownLoad(); return 0; }Part3.3. processbar.h#pragma once #include stdio.h #include stdlib.h #include string.h #include unistd.h void processbar(int process); void DownLoad();Part4. 总结与反思这项目关键还是在于复习C语言的函数和规范我们的代码比如我们要常利用#define来定义我们过程中具有常数属性的变量避免魔法值遍地。还有就是在我们实现函数的时候我们要注意高内聚、低耦合这是我们项目可维护的关键。Part5. 结语这篇文章我们实现了下载中进度条项目接下来小编还会带来更多Linux相关的知识敬请期待~最后祝大家可以春风得意马蹄疾一日看尽长安花最后的最后要是觉得本文还可以的话可以点点赞关注小编一波谢谢大家~

相关新闻

IP 协议是如何把数据包送达目的地的

IP 协议是如何把数据包送达目的地的

文章目录 1 IP 协议头格式2 原理2.1 网段概念2.2 网段划分2.2.1 分类划分法2.2.2 子网掩码划分 2.3 小结 3 路由器与运营商3.1 路由器3.2 运营商 4 局域网和广域网4.1 局域网组成4.2 广域网组成 5 分片与组装6 总结 1 IP 协议头格式 IPv4版本为4,总共32位长度。IPv6…

2026/8/24 12:57:55 阅读更多 →
战略说要轻资产,组织还在按重资产节奏开会

战略说要轻资产,组织还在按重资产节奏开会

摘要:战略从重资产转向轻资产后,会议、决策和资源节奏也要变化。肯耐珂萨提醒管理层,战略解码要落到组织节拍。避免新战略被旧会议和旧审批拖慢。战略会上,管理层说今年要做轻资产。会后,组织还是按老节奏运转。每个项…

2026/8/24 12:57:55 阅读更多 →
管理者只会要结果,团队就学不会复盘

管理者只会要结果,团队就学不会复盘

摘要:管理者如果只追结果、不拆过程,团队会越来越会交差,却不会改进。肯耐珂萨提醒企业,复盘能力要从上级提问开始。让项目经验真正沉淀为组织学习。项目汇报会上,团队把结果讲得很完整。完成了什么,没完成…

2026/8/24 12:57:55 阅读更多 →

最新新闻

PHP入门到项目实战,别让这教程白瞎了你的青春

PHP入门到项目实战,别让这教程白瞎了你的青春

这一针对初学者以及选修PHP课程的学生而精心编写的简明指南, 属于本PHP基础教程, 通过教程能够助力读者迅速掌握该动态脚本语言的基础知识。教程内容起始于PHP的概述部分, 它还会深入且浅出地讲解Web程序的工作原理, 这里面涵盖了浏览器、HTML的工作方式, 其目的是让读者理解整…

2026/8/24 14:47:23 阅读更多 →
长鑫市值超过 2.5 个茅台:钱往哪里流,企业的机会就在哪里

长鑫市值超过 2.5 个茅台:钱往哪里流,企业的机会就在哪里

引言 /Introduction 4**万亿市值的长鑫、跳高2米的机器人、高技术产业投资增长5%****。**旧动能退场,新动能接棒,企业投资逻辑正在改写。8月17日,有三则新闻值得放在一起看。 第一,长鑫科技大涨12%,市值突破4万亿元&am…

2026/8/24 14:47:23 阅读更多 →
Dubbo由浅入深6

Dubbo由浅入深6

第6章 负载均衡策略 学习目标 读完本章,你将能够: 理解负载均衡在微服务中的作用和客户端负载均衡的优势 掌握 Dubbo 内置的 7 种负载均衡策略原理 能够根据业务场景选择合适的负载均衡策略 掌握自定义负载均衡器的开发方法 6.1 负载均衡的基本概念 负载均衡(Load Balanc…

2026/8/24 14:47:23 阅读更多 →
基于SpringBoot的冠心病防治网站(源码+文档+部署讲解等)

基于SpringBoot的冠心病防治网站(源码+文档+部署讲解等)

联系博主 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 …

2026/8/24 14:47:23 阅读更多 →
异常Wi-Fi信号问题处理

异常Wi-Fi信号问题处理

问题:发现异常Wi-Fi,wifi没有密码可以直接连接,连接后可访问HIS系统进行路由跟踪【命令:tracert -d 10.99.16.100】发现,无线设备通过wifi到有线网络,从而访问到HIS系统;解决方法:移…

2026/8/24 14:47:23 阅读更多 →
Linux命令:expand

Linux命令:expand

expand 命令 基本介绍 expand 用于将文本中的制表符(Tab,通常显示为 \t)转换为空格。它会根据当前列位置和指定的制表位计算需要替换的空格数量,从而保持文本的视觉对齐效果。 资料合集:https://pan.quark.cn/s/6fe300…

2026/8/24 14:46:23 阅读更多 →

日新闻

前端内容安全与依赖审计实践

前端内容安全与依赖审计实践

前端内容安全与依赖审计实践 前端安全依赖分层防护。没有任何单一配置能替代输出编码、权限校验和依赖更新。 把不可信内容当作数据 默认使用框架的转义能力;确需渲染 HTML 时,先在服务端或可信的客户端库中进行白名单过滤。避免把用户输入直接赋给 inne…

2026/8/24 1:08:15 阅读更多 →
Windows登录密码存储机制全解析:从哈希算法到安全加固实战

Windows登录密码存储机制全解析:从哈希算法到安全加固实战

1. 项目概述:Windows登录密码的“黑匣子”每次你按下CtrlAltDel,输入密码,然后看到那个熟悉的桌面,这背后发生了一系列复杂而精密的操作。作为一名长期与Windows系统打交道的从业者,我经常被问到:“我的密码…

2026/8/24 1:08:15 阅读更多 →
AI面试系统安全挑战与解决方案

AI面试系统安全挑战与解决方案

1. 项目概述:AI面试系统的安全挑战去年参与某跨国企业AI面试系统部署时,遇到一个典型案例:候选人在视频面试中无意提到竞争对手产品名称,系统竟自动将该信息关联到企业知识库并生成竞品分析报告。这个看似"智能"的功能&…

2026/8/24 1:08:15 阅读更多 →

周新闻

[光学原理与应用-521]:对光的错误理解与纠偏

[光学原理与应用-521]:对光的错误理解与纠偏

首先光是一种能量的载体和形态,宏观上观察到的光是由无数个微观的光量子组成的,每个光子在产生的瞬间,其在真空的空间中以确定不变的速度沿着一个初始的方向一直向前,在微观层面,每个光量子的运动轨迹是以波函数所展现…

2026/8/24 0:06:02 阅读更多 →
SIP通话转接原理与REFER方法实战解析

SIP通话转接原理与REFER方法实战解析

1. 通话转接不是“挂断再拨号”,而是SIP会话的动态重定向你有没有遇到过这样的场景:客服坐席A正在和客户通电话,突然需要把这通对话无缝转给专家坐席B,客户完全感知不到中间的断连——既没听到忙音,也没被要求重新拨号…

2026/8/24 0:20:20 阅读更多 →
Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

1. 为什么选择Kolla-ansible来部署单节点OpenStack?如果你正在寻找一种能把OpenStack从“概念”快速变成“可用的实验环境”的方法,那么Kolla-ansible几乎是当前最主流、最省心的选择。我见过太多人卡在手动编译依赖、配置服务、处理版本冲突的泥潭里&am…

2026/8/24 0:14:11 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/23 18:47:06 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/23 12:10:44 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/24 11:20:22 阅读更多 →