Linux:进度条(小步伐)以及git三板斧

打印 上一主题 下一主题

主题 893|帖子 893|积分 2679



 Linux小步伐:进度条

   在实现小步伐前我们要弄清晰:
          1.缓冲区;
          2.回车与换行。
  缓冲区:

分别用gcc来编译下面两个步伐:
   步伐一:
  #include <stdio.h>
int main()
{
        printf("hello Makefile!\n");
        sleep(3);
        return 0;
}
  步伐二:
  #include <stdio.h>
int main()
{
        printf("hello Makefile!\n");
        sleep(3);
        return 0;
}
  

          可以看到打印步伐二没有 \n ’后,没有在该打印的时候打印,反而在竣事后才出现,
  这阐明peintf的运行结果hello Makefile被提起生存在了某个地方,当步伐竣事时,hello Makefile才打印出来,这个地方就是缓冲区!
  回车与换行: 

   

  通过老式键盘就会发现实在Enter是包含换行和回车的意思:
          回车:就是到一行的开头;
          换行(' \r '):切换到当前位置的下一行;
   有了以上的知识储备我们就可以开始写Linux的第一个步伐了!!
进度条:

   由于没有了' \n '无法刷新缓冲区,所以还需要相识一个强制刷新的函数:
          头文件为:#include <unistd.h> 
          函数:fflush()
  此时我们先来写个倒计时:

进度条,启动!!
首先需要创建makefile文件实现多文件之间的自动化构建:
makefile:
  1.   1 my-test:game.o main.o                                                                                                                           
  2.   2   gcc -o $@ $^
  3.   3 main.o:main.c
  4.   4   gcc -c main.c
  5.   5 game.o:game.c  
  6.   6   gcc -c game.c
  7.   7               
  8.   8 .PHONY:clean
  9.   9 clean:      
  10. 10   rm -f my-test game.o main.o
复制代码
game.h:
  1.   1 #include <stdio.h>
  2.   2 #include <time.h>
  3.   3 #include <stdlib.h>
  4.   4 #include <unistd.h>
  5.   5
  6.   6 #define Head '>'
  7.   7 #define MAX 102
  8.   8 #define CHAR '='
  9.   9
  10. 10 //进度条实现                                                                                                                                    
  11. 11 void Progress(double n);
复制代码
game.c:
  1.   1 #include "game.h"
  2.   2 //下载在进行图标
  3.   3 const char*arr1="|/-\";
  4.   4 //进度条数组
  5.   5 char arr2[MAX] = {};
  6.   6 void Progress(double n)
  7.   7 {
  8.   8   //char arr1[4] = "|/-";
  9.   9   static int count = 0;
  10. 10   int count1 = count % 4;
  11. 11   count++;
  12. 12   //下载进度未达到1%需要一个箭头表示
  13. 13   if(n <= 1.0)
  14. 14     arr2[0] = Head;
  15. 15   //\033:表示颜色开始 [5;31;44m:表示闪烁;前景色为黄色;背景色为蓝色 \033[0m:表示清空颜色缓存
  16. 16   //\r:表示回到开头
  17. 17   printf("[\033[5;31;44m%-100s\033[0m][%.1f%%][%c]\r",arr2,n,arr1[count1]);
  18. 18   //强制刷新缓冲区
  19. 19   fflush(stdout);
  20. 20   //按百分比显示进度                                                                                                                             
  21. 21   arr2[(int)n] = CHAR;   
  22. 22   if(n < 99)              
  23. 23     arr2[(int)n+1] = Head;
  24. 24                        
  25. 25 }
复制代码
main.c:
  1. 1 #include "game.h"
  2.   2
  3.   3 void Down1()
  4.   4 {
  5.   5   //取随机数
  6.   6   srand(time(NULL));
  7.   7   //需要下载的大小
  8.   8   int num = 1024 * 1024 *1024;
  9.   9   int nnn = num;
  10. 10   //下载未完成继续下载
  11. 11   while(num)
  12. 12   {
  13. 13     //休眠1000微秒
  14. 14     usleep(1000);
  15. 15     //本次下载的大小
  16. 16     int download = rand() % (1024 * 1024);
  17. 17     //还需要的下载量
  18. 18     num = num - download;
  19. 19     //下载完成
  20. 20     if(num < 0)
  21. 21       num = 0;
  22. 22     int downnum = nnn - num;
  23. 23     //下载占需要下载的百分比                                                                                                                     
  24. 24     double n = ((downnum * 1.0) / nnn ) * 100.0;
  25. 25     Progress(n);         
  26. 26   }                       
  27. 27   printf("\n");           
  28. 28 }                        
  29. 29                           
  30. 30 int main()               
  31. 31 {                        
  32. 32   Down1();               
  33. 33                           
  34. 34   return 0;               
  35. 35 }
复制代码
特殊留意: 

        进度条是建立在一个加载这类的板子上的,不是用步伐写出来后本身控制进度的!需要共同一些下载场景,根据下载量的巨细和下载速率来实时对进度举行同步更新!!!
利用Gitee创建项目:

   首先需要在Linux安装git:
  格式:yum intall git
  其次需要创建一个Gitee账号Gitee - 基于 Git 的代码托管和研发协作平台
然后创建一个堆栈,如下:如果不需要裁剪文件就不需要勾选 .gitignore

在创建好的堆栈页面中复制堆栈的链接, 以备接下来举行同步数据:

下载堆栈到当地:

   将代码放到刚才下载好的目次中
格式:git clone [url]
这里的 url 就是刚刚建立好的 项目 的链接

  三板斧第一项:git add

   将代码放到刚才下载好的目次中
格式:git add [文件名]
将需要用 git 管理的文件告知 git

  三板斧第二项:git commit

   提交改动到当地
格式:git commit .

  末了的 "." 表现当前目次
提交的时候应该注明提交日志, 形貌改动的详细内容
.
  三板斧第三项:git push

   同步到远端服务器上
格式:git push
需要填入用户名密码. 同步乐成后, 刷新 Github 页面就能看到代码改动了。

  过程: 

   需要留意:git add .只是将文件放入暂存区,还没有放入到当地堆栈中!!!
  


特殊留意: 

   1.如下图中的.gitignore中包含的文件格式会举行过滤,并且是修改就会生效的!!!
  2.当我们在举行多人关联一个远程堆栈时,一方举行远程提交后,另一方要想远程提交必须同步远程堆栈!(必须保证全部的人都能看到!),git堆栈如果当地和远端堆栈差别步,git会强制你举行同步!
  



以上就是个人学习的见解和学习过程的解析,欢迎各位大佬在批评区探究,交流!
如果本篇对你有帮助的话,三连支持一下吧。
感谢大佬们的三连! 感谢大佬们的三连! 感谢大佬们的三连!
                                              


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

吴旭华

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表