码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 【Linux初阶】Linux小程序 - 进度条


      🌟hello,各位读者大大们你们好呀🌟

    🍭🍭系列专栏:【Linux初阶】

    ✒️✒️本篇内容:综合使用Linux基础指令、vim编辑器、gcc工具、make/makefile编译工具完成Linux小程序 - 进度条

    🚢🚢作者简介:计算机海洋的新进船长一枚,请多多指教( •̀֊•́ ) ̖́-

    📡📡同期Linux工具文章:【Linux初阶】vim工具的使用 

                                               【Linux初阶】Linux项目自动化构建工具-make/Makefile 


    touch(创建)四个文件(main.c,mycode.h,mycode.c,makefile)

    main.c

    1. 1 #include "mycode.h"
    2. 2
    3. 3 int main()
    4. 4 {
    5. 5 ProncessOn();
    6. 6 //printf("hhhh\n"); - 测试使用
    7. 7 return 0;
    8. 8 }

    【注意】通常我们使用make/makefile工具时,应该要分布测试程序的可执行情况


    mycode.h 

    1. 1 #pragma once
    2. 2
    3. 3 #include <stdio.h>
    4. 4 #include <string.h>//初始化需要使用
    5. 5 #include <unistd.h>//休眠需要使用
    6. 6
    7. 7 #define NUM 101
    8. 8 #define s_num 5
    9. 9
    10. 10 extern void ProncessOn();


    mycode.c

    1. 1 #include "mycode.h"
    2. 2
    3. 3 char style[s_num] = {'-', '#', '.', '>', '+'};//不同进度条风格选择
    4. 4
    5. 5 extern void ProncessOn()
    6. 6 {
    7. 7 int cnt = 0;
    8. 8 char bar[NUM];
    9. 9 memset(bar, '\0', sizeof(bar));//初始化
    10. 10
    11. 11 const char *lable = "l\\-/";//显式图形
    12. 12
    13. 13 while(cnt<=100)
    14. 14 {
    15. 15 printf("[%-100s][%d%%][%c]\r", bar, cnt, lable[cnt%4]);//-\r回到首行,%-100使中括号再100位置上(右对齐)
    16. 16 fflush(stdout);//刷新
    17. E> 17 bar[cnt++] = style[N]; //这里的宏再makedile中定义
    18. 18 //sleep(1);
    19. 19 usleep(50000); //5s/100==0.05==50000
    20. 20 }
    21. 21
    22. 22 printf("\n");
    23. 23 }
    • 使用头文件中的定义宏 s_num,便于修改
    • 使用 style[N] - 外接的定义宏N,便于修改和使用
    • \r - 回到行首,每次循环需要打印不同的字符串
    • 使用 fflush(stdout) 刷新之后,才不会形成“代码山”式的叠加

    makefile

    修改定义宏可以更换不同格式

    1. 1 mycode:mycode.c main.c
    2. 2 gcc mycode.c main.c -o mycode -DN=1 #这里用-D定义宏N=1
    3. 3
    4. 4 .PHONY:clean
    5. 5 clean:
    6. 6 rm -f mycode


    make编译

    1. [ldx@VM-12-11-centos myfile]$ make
    2. gcc mycode.c main.c -o mycode -DN=1
    3. [ldx@VM-12-11-centos myfile]$ ./mycode
    4. [####################################################################################################][100%][l]


     


     🌹🌹Linux小程序 - 进度条大概就讲到这里啦,博主后续会继续更新更多Linux操作系统的相关知识,干货满满,如果觉得博主写的还不错的话,希望各位小伙伴不要吝啬手中的三连哦!你们的支持是博主坚持创作的动力!💪💪   

  • 相关阅读:
    Matlab:Matlab 软件学习之Matlab内置的各种系统的简介、案例应用(基于Simulink模糊控制仿真/二阶瞬态震荡电路案例)之详细攻略
    Docker安装Redis
    【概率论基础进阶】随机事件和概率-古典概型与伯努利概型
    Python武器库开发-基础篇(二)
    HashMap<String,Object>是什么?什么情况下使用HashMap?
    STM32项目工程的搭建
    【Proteus仿真】【STM32单片机】大棚远程监测控制
    用Python计算点估计预测评价指标(误差指标RMSE、MSE、MAE、MAPE) ,画图展示
    一个基于.Net Core、Vue开发仿掘金的CMS开源系统
    猿创征文|【FreeSwitch开发实践】使用sipp对FreeSwitch进行压力测试
  • 原文地址:https://blog.csdn.net/Captain_ldx/article/details/127739163
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号