• 【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操作系统的相关知识,干货满满,如果觉得博主写的还不错的话,希望各位小伙伴不要吝啬手中的三连哦!你们的支持是博主坚持创作的动力!💪💪   

  • 相关阅读:
    软件测试进阶篇----自动化测试概述
    天眼查最新方式工商信息爬取(公开信息)
    正点原子lwIP学习笔记——Jperf测试网速
    性能指标介绍
    C#常量.
    MAML在隐式神经表示中的应用
    安卓在任意位置打开drawerLayout
    Java两周半速成之路(第十天)
    Sentinel 规则持久化操作
    九、GC收集日志
  • 原文地址:https://blog.csdn.net/Captain_ldx/article/details/127739163