Linux:进度条(小程序)以及git三板斧

 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.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 1028 #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   //\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)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创建项目:

首先需要在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会强制你进行同步!

以上就是个人学习的见解和学习过程的解析,欢迎各位大佬在评论区探讨,交流!

如果本篇对你有帮助的话,三连支持一下吧。

感谢大佬们的三连! 感谢大佬们的三连! 感谢大佬们的三连!

                                              

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/201143.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

飞瓜数据B站丨B站UP主11月第3周榜单排行榜榜单(B站平台)发布!

飞瓜轻数发布2023年11月13日-11月19日飞瓜数据UP主排行榜&#xff08;B站平台&#xff09;&#xff0c;通过充电数、涨粉数、成长指数、带货数据等维度来体现UP主账号成长的情况&#xff0c;为用户提供B站号综合价值的数据参考&#xff0c;根据UP主成长情况用户能够快速找到运营…

云备份——初步认识及环境搭建

文章目录 整体功能简介云备份功能实现目标服务器程序负责功能细分服务端模块划分客户端功能细分客户端模块划分 环境搭建gcc安装 jsoncppbundle库 与 httplib库安装 整体功能简介 云备份功能 自动将本地计算机上指定文件夹中需要备份的文件上传备份到服务器中 并且能够通过浏…

基于Apache部署虚拟主机网站

文章目录 Apache释义Apache配置关闭防火墙和selinux 更改默认页内容更改默认页存放位置个人用户主页功能基于口令登录网站虚拟主机功能基于ip地址相同ip不同域名相同ip不同端口 学习本章完成目标 1.httpd服务程序的基本部署。 2.个人用户主页功能和口令加密认证方式的实现。 3.…

Spring框架学习 -- 核心思想

目录 (1) Spring是什么? (2) 什么是IOC容器? (3) 从传统开发认识spring (4) 这种传统开发的缺陷 (5)解决传统开发中的缺陷 (6) 对比总结规律 (7) 理解IOC 创作不易多多支持 (1) Spring是什么? 我们常说的Spring的全称是: Spring Framework(Spring框架), 它是一个开源…

【广州华锐互动】VR防溺水安全内容体验提高群众防溺水意识

在全球各地&#xff0c;溺水是导致儿童和青少年死亡的主要原因之一。据世界卫生组织的统计&#xff0c;全球每年有超过36万人因溺水而死亡&#xff0c;其中大部分是儿童和青少年。因此&#xff0c;提供有效的防溺水教育和培训至关重要。随着科技的发展&#xff0c;虚拟现实&…

CF 1894A 学习笔记 思维 题意理解分析

原题 A. Secret Sport time limit per test 3 seconds memory limit per test 512 megabytes input standard input output standard output Lets consider a game in which two players, A and B, participate. This game is characterized by two positive integer…

MyBatis Generator 插件 详解自动生成代码

MyBatis Generator&#xff08;MBG&#xff09;是MyBatis和iBATIS的代码生成器。可以生成简单CRUD操作的XML配置文件、Mapper文件(DAO接口)、实体类。实际开发中能够有效减少程序员的工作量&#xff0c;甚至不用程序员手动写sql。 它将为所有版本的MyBatis以及版本2.2.0之后的i…

【Java基础】Java导Excel攻略

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

【JavaEE】操作系统与进程

作者主页&#xff1a;paper jie_博客 本文作者&#xff1a;大家好&#xff0c;我是paper jie&#xff0c;感谢你阅读本文&#xff0c;欢迎一建三连哦。 本文录入于《JavaEE》专栏&#xff0c;本专栏是针对于大学生&#xff0c;编程小白精心打造的。笔者用重金(时间和精力)打造&…

京东小程序:无代码开发实现API集成,连接电商平台、CRM和客服系统

无需复杂API开发&#xff0c;京东小程序连接电商平台 京东小程序平台以其全开放的生态模式&#xff0c;让商家享有京东系APP流量福利、海量SKU和开放能力&#xff0c;提升用户体验&#xff0c;同时也带来了新商机。京东小程序的最大优势在于&#xff0c;商家无需进行复杂的API…

驶入产业发展快车道,汉鑫科技人工智能研发中心正式启用!

11月18日&#xff0c;汉鑫科技人工智能研发中心正式启用。中心立足烟台&#xff0c;服务全国&#xff0c;聚焦工业智能、智能网联、智慧城市三大业务板块&#xff0c;以人工智能技术赋能政企实现“数智化”转型升级。该中心的启用标志着汉鑫科技在人工智能研发应用领域迈上了新…

二百零四、Flume——登录监听窗口报错Ncat: bind to :::44444: Address already in use. QUITTING.

一、目的 Flume安装好后测试开启监听窗口44444&#xff0c;结果报错Ncat: bind to :::44444: Address already in use. QUITTING. 二、报错详情 Ncat: bind to :::44444: Address already in use. QUITTING. 三、报错原因 经过分析发现&#xff0c;44444窗口已经被占用 […

el-input限制输入整数等分析

文章目录 前言1、在 Vue 中&#xff0c;可以使用以下几种方式来限制 el-input 只能输入整数1.1 设置input 的 type为number1.2 使用inputmode1.3 使用自定义指令1.4 使用计算属性1.5 使用 onafterpaste ,onkeyup1.6 el-input-number 的precision属性 总结 前言 input 限制输入…

前端学习--React(1)

一、React简介 React由Meta公司研发&#xff0c;是一个用于 构建Web和原生交互界面的库 优势&#xff1a;组件化开发、不错的性能、丰富生态&#xff08;所有框架中最好&#xff09;、跨平台&#xff08;web、ios、安卓&#xff09; 开发环境搭建 打开相应文件夹 新建终端并…

【深度学习实验】注意力机制(四):点积注意力与缩放点积注意力之比较

文章目录 一、实验介绍二、实验环境1. 配置虚拟环境2. 库版本介绍 三、实验内容0. 理论介绍a. 认知神经学中的注意力b. 注意力机制 1. 注意力权重矩阵可视化&#xff08;矩阵热图&#xff09;2. 掩码Softmax 操作3. 打分函数——加性注意力模型3. 打分函数——点积注意力与缩放…

设计模式(二)-创建者模式(3)-抽象工厂模式

一、为什么需要抽象工厂模式&#xff1f; 在工厂模式中&#xff0c;我们需要定义多个继承于共同工厂抽象基类的工厂子类&#xff0c;这些子类负责创建一个对应的对象。工厂模式存在一个缺点就是&#xff1a;每次扩展新的工厂子类&#xff0c;就会增加系统的复杂度。 如果我们…

[论文笔记] Scaling Laws for Neural Language Models

概览: 一、总结 计算量、数据集大小、模型参数量大小的幂律 与 训练损失呈现 线性关系。 三个参数同时放大时,如何得到最佳的性能? 更大的模型 需要 更少的样本 就能达到相同的效果。 </

如何使用 WPF 应用程序连接 FastReport报表

随着期待已久的FastReport WPF的发布&#xff0c;您不再需要使用 FastReport .NET 来处理基于 WPF 的项目。 不久前&#xff0c;在 FastReport .NET 中使用 WPF 还相当不方便。并非一切都进展顺利&#xff1b;连接 FastReport.dll 和许多其他问题存在问题。我们重新思考了该方…

No such module ‘FacebookCore‘

在下面的地方添加这个库