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

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


mycode.h 

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


mycode.c

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

makefile

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

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


make编译

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


 


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

  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值