Linux小程序:进度条
1.缓冲区;
2.回车与换行。
缓冲区:
程序一:
#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才打印出来,这个地方就是缓冲区!
回车与换行:
回车:就是到一行的开头;
有了以上的知识储备我们就可以开始写Linux的第一个程序了!!
进度条:
由于没有了’ n ‘无法刷新缓冲区,所以还需要了解一个强制刷新的函数:
函数:fflush()
此时我们先来写个倒计时:
首先需要创建makefile文件实现多文件之间的自动化构建:
1 my-test:game.o main.o
2 gcc -o $@ $^
3 main.o:main.c
4 gcc -c main.c
5 game.o:game.c
6 gcc -c game.c
7
8 .PHONY:clean
9 clean:
10 rm -f my-test game.o main.o
game.h:
1 #include <stdio.h>
2 #include <time.h>
3 #include <stdlib.h>
4 #include <unistd.h>
5
6 #define Head '>'
7 #define MAX 102
8 #define CHAR '='
9
10 //进度条实现
11 void Progress(double n);
game.c:
1 #include "game.h"
2 //下载在进行图标
3 const char*arr1="|/-\";
4 //进度条数组
5 char arr2[MAX] = {};
6 void Progress(double n)
7 {
8 //char arr1[4] = "|/-";
9 static int count = 0;
10 int count1 = count % 4;
11 count++;
12 //下载进度未达到1%需要一个箭头表示
13 if(n <= 1.0)
14 arr2[0] = Head;
15 //33:表示颜色开始 [5;31;44m:表示闪烁;前景色为黄色;背景色为蓝色 33[0m:表示清空颜色缓存
16 //r:表示回到开头
17 printf("[33[5;31;44m%-100s33[0m][%.1f%%][%c]r",arr2,n,arr1[count1]);
18 //强制刷新缓冲区
19 fflush(stdout);
20 //按百分比显示进度
21 arr2[(int)n] = CHAR;
22 if(n < 99)
23 arr2[(int)n+1] = Head;
24
25 }
main.c:
1 #include "game.h"
2
3 void Down1()
4 {
5 //取随机数
6 srand(time(NULL));
7 //需要下载的大小
8 int num = 1024 * 1024 *1024;
9 int nnn = num;
10 //下载未完成继续下载
11 while(num)
12 {
13 //休眠1000微秒
14 usleep(1000);
15 //本次下载的大小
16 int download = rand() % (1024 * 1024);
17 //还需要的下载量
18 num = num - download;
19 //下载完成
20 if(num < 0)
21 num = 0;
22 int downnum = nnn - num;
23 //下载占需要下载的百分比
24 double n = ((downnum * 1.0) / nnn ) * 100.0;
25 Progress(n);
26 }
27 printf("n");
28 }
29
30 int main()
31 {
32 Down1();
33
34 return 0;
35 }
特别注意:
进度条是建立在一个加载这类的板子上的,不是用程序写出来后自己控制进度的!需要配合一些下载场景,根据下载量的大小和下载速度来实时对进度进行同步更新!!!
使用Gitee创建项目:
其次需要创建一个Gitee账号:Gitee – 基于 Git 的代码托管和研发协作平台
然后创建一个仓库,如下:如果不需要裁剪文件就不需要勾选 .gitignore
在创建好的仓库页面中复制仓库的链接, 以备接下来进行同步数据:
下载仓库到本地:
三板斧第一项:git add
三板斧第二项:git commit
三板斧第三项:git push
同步到远端服务器上
格式:git push
需要填入用户名密码. 同步成功后, 刷新 Github 页面就能看到代码改动了。
过程:
特别注意:
1.如下图中的.gitignore中包含的文件格式会进行过滤,并且是修改就会生效的!!!
2.当我们在进行多人关联一个远程仓库时,一方进行远程提交后,另一方要想远程提交必须同步远程仓库!(必须保证所有的人都能看到!),git仓库如果本地和远端仓库不同步,git会强制你进行同步!
以上就是个人学习的见解和学习过程的解析,欢迎各位大佬在评论区探讨,交流!
感谢大佬们的三连! 感谢大佬们的三连! 感谢大佬们的三连!
原文地址:https://blog.csdn.net/weixin_71964780/article/details/134501825
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_16847.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!