开发网站制作,各种网站制作,网站 后台 模板,公司网页网站建设+ppt模板下载Linux小程序#xff1a;进度条 在实现小程序前我们要弄清楚#xff1a; 1.缓冲区#xff1b; 2.回车与换行。 缓冲区#xff1a;
分别用gcc来编译下面两个程序#xff1a; 程序一#xff1a; #include stdio.h int main() { printf(hello Makefil… 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 my-test:game.o main.o 2 gcc -o $ $^3 main.o:main.c 4 gcc -c main.c5 game.o:game.c 6 gcc -c game.c7 8 .PHONY:clean9 clean: 10 rm -f my-test game.o main.ogame.h 1 #include stdio.h2 #include time.h3 #include stdlib.h4 #include unistd.h5 6 #define Head 7 #define MAX 1028 #define CHAR 9 10 //进度条实现 11 void Progress(double n);game.c 1 #include game.h2 //下载在进行图标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 //\033表示颜色开始 [5;31;44m:表示闪烁;前景色为黄色;背景色为蓝色 \033[0m:表示清空颜色缓存16 //\r:表示回到开头17 printf([\033[5;31;44m%-100s\033[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)n1] Head;24 25 }
main.c
1 #include game.h2 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创建项目 首先需要在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会强制你进行同步 以上就是个人学习的见解和学习过程的解析欢迎各位大佬在评论区探讨交流
如果本篇对你有帮助的话三连支持一下吧。
感谢大佬们的三连 感谢大佬们的三连 感谢大佬们的三连